[SQL] 並未為 RPC 設定伺服器 'LinkedServer'

  • 5408
  • 0
  • SQL
  • 2017-08-12

有呼叫連結伺服器 Stored Procedure 需求時

請記得開啟 RPC (Remote Procedure Call) 功能

避免「並未為 RPC 設定伺服器」錯誤產生

錯誤發生


在執行某隻預存程序(Stored Procedure)時發出以下的錯誤訊息。

並未為RPC設定伺服器 'TLOG'

 

錯誤釐清


仔細查看該 Stored Procedure 後發現其中有呼叫到 TLOG 連結伺服器中的 Stored Procedure,而訊息很明確地告訴我們需要替 TLOG 連結伺服器啟用 Remote Procedure Call (RPC) 功能。

首先可以透過以下 SQL 語法查看連結伺服器的資訊。

USE master;  
GO  

-- 查看所有 linked server 資訊
EXEC sp_helpserver;  

-- 查看特定 linked server 資訊
EXEC sp_helpserver 'MyLinkedServer';  

查看後確實在 status 中不包含 rpc 及 rpc out 功能

也可直接透過 SSMS 介面查看特定連結伺服器的選項

 

錯誤排除


可以使用 UI 介面或以下 SQL 語法直接進行設定。

USE master;  
GO 
exec sp_serveroption @server='TLOG', @optname='rpc', @optvalue='true'
exec sp_serveroption @server='TLOG', @optname='rpc out', @optvalue='true'

設定完畢再取出資料就會發現 status 中多出 rpc 及 rpc out 兩項目,這樣就大功告成了

 


希望此篇文章可以幫助到需要的人

若內容有誤或有其他建議請不吝留言給筆者喔 !