我需要在使用链接服务器的不同服务器中执行相同的命令。
INSERT #Result
EXEC ('command') AT @linked_server
由于Insert语句打开隐式事务,而我无法启用DTC(分布式事务控制(,因此将发生以下错误:
由于OLE DB访问接口,无法执行该操作"MSOLEDBSQL";对于链接服务器";RM-BIEDW";无法开始分布式事务。
除了启用DTC之外,还有其他解决方案吗?
开启"远程进程事务提升",例如
EXEC master.dbo.sp_serveroption @server=N'linked_server', @optname=N'remote proc transaction promotion', @optvalue=N'false'
或者使用OPENQUERY
insert #result
select * from openquery(linked_server, 'command')