關于問題,有兩個相關的伺服器選項。
exec sp_serveroption @server='CIA-SH-SVR-SIS', @optname='rpc', @optvalue='true'
exec sp_serveroption @server='CIA-SH-SVR-SIS', @optname='rpc out', @optvalue='true'
通常我們從linked server上取資料有兩種辦法。第一種是用完全路徑通路,即SELECT * FROM [Server].[Database].sys.objects。另一種則是用EXEC(<cmd>) AT linked_server。
第一種辦法好像是不受上面兩個RPC選項的影響,至少我把它們都設定成false也照樣可以從linked server上select資料。而第二種則需要把rpc out設定為true,我試過在rpc為false的情況下照樣可以用第二種方法傳回資料。測試環境:Microsoft SQL Server 2012 (X64) Enterprise Edition。