需要一些关于以下问题的帮助:
案例1:存储过程在服务器1上 - 来自server1的调用
declare @tempCountry table (countryname char(50))
insert into @tempCountry
exec [database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry
Run Code Online (Sandbox Code Playgroud)
结果:成功执行
案例2:如果使用链接服务器从不同的服务器调用相同的存储过程,如下所示:
declare @tempCountry table (countryname char(50))
insert into @tempCountry
exec [database2_server2].[database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry
Run Code Online (Sandbox Code Playgroud)
结果
消息7391,级别16,状态2,行2
无法执行操作,因为linkedserver"Server2_Database2"的OLEDB提供程序"SQLNCLI"无法启动分布式事务.
案例3
但是当试图单独执行存储过程[没有临时表插入]如下所示
exec [database2_server2].[database1_server1].[dbo].[getcountrylist]
Run Code Online (Sandbox Code Playgroud)
结果:正在执行存储过程而没有任何错误并返回数据.
我忘了提到我正在使用SQL Server 2005.根据服务器管理员的说法,我建议使用的功能在2005年不可用.