我最近將SQL Server從2005年升級到2014年(鏈接服務器),我注意到調用exec命令在升級後的鏈接服務器上執行存儲過程的存儲過程之一失敗,出現錯誤在sys.servers中找不到服務器'服務器名稱'。 SQL Server 2014
在sys.servers.Verify中找不到服務器'服務器名稱',指定了正確的服務器名稱。如有必要,請執行存儲過程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是enabled.I've授予了對存儲過程的執行權限。我可以選擇記錄並在鏈接的服務器上執行其他存儲過程,但上面的exec失敗(它在升級之前起作用)。是否SQL Server 2005和SQL Server 2014之間的語法差異導致此失敗?
錯誤訊息嗎? – TheGameiswar
我有相同的消息,但我的原因是在數據庫名稱中的一個點看到[這個答案從db-name不在sys服務器](http://stackoverflow.com/a/23110264/819887) – surfmuggle