【发布时间】:2016-06-18 09:58:43
【问题描述】:
我最近将我们的 SQL Server 从 2005 升级到 2014(链接服务器),我注意到调用 exec 命令以在升级的链接服务器上执行存储过程的存储过程之一失败并出现错误
在 sys.servers 中找不到服务器“服务器名称”。请验证是否指定了正确的服务器名称。如有必要,执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。
问题是链接服务器存在,我已经完成测试以确保我可以从链接服务器查询表。以下是我为查看链接服务器是否配置正确所做的检查。
- select name from sys.servers -- > Lists the linked server
- select top 10 * from linkedserver.database.dbo.table --> Gets top 10 records
- exec linkedserver.database.dbo.storedproc --> Executes the stored procedure (I created a test stored procedure on the linked server and I can execute it)
但是由于错误而失败的那个在下面
exec linkedserver.database.dbo.failing_storedprocedure @id,'load ','v2',@file_name, @list_id = @listid output;
我已重新创建链接服务器并启用了 RPC。我已授予对存储过程的执行权限。我可以在链接服务器上选择记录并执行其他存储过程,但上述 exec 失败(升级前它工作)。SQL Server 2005 和 SQL Server 2014 之间是否存在语法差异导致此失败?
【问题讨论】:
-
我收到了同样的信息,但我的原因是数据库名称中的一个点,请参阅this answer from db-name not in sys-servers
标签: sql sql-server stored-procedures sql-server-2014 linked-server