关于问题,有两个相关的服务器选项。
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。