我有一个链接服务器,我需要运行以下语句:
INSERT INTO...EXEC linkedserver.sp @parameter
两台服务器 SQL Server 2008R2 SP1。一旦我运行它,我就会得到这个错误:
消息 7391,级别 16,状态 2,第 6 行 由于链接服务器“MY.LINKED.SERVER”的 OLE DB 提供程序“SQLNCLI10”无法开始分布式事务,因此无法执行操作。
搜索错误后,我看到很多建议运行:
EXEC master.dbo.sp_serveroption
@server = N'[mylinkedserver]',
@optname = N'remote proc transaction promotion',
@optvalue = N'false'
我应该注意此操作是否有任何安全隐患?
其他选项是在主服务器上使用链接服务器对象的高级属性:
当您在
INSERT INTO...EXEC
本地执行时,sql server 会尊重它,但是当您使用 Linked server 时,sql server 必须启动本地事务并提升/升级为分布式事务。来自 -->如何在 SQL Server 2008 中创建自治事务
据我所知,没有安全隐患。
此外,有关详细信息,请参阅sp_serveroption 。