我有两个SQL Server实例:
我正在从Server1执行存储过程,该存储过程引用Server2上的表。
在我的测试环境中工作正常:
但是,它无法在生产环境中运行:
我收到的错误消息是:
链接服务器“Server2”的OLE DB提供程序“SQLNCLI10”返回消息“没有事务处于活动状态。”。
Msg 7391,Level 16,State 2,Line 21
无法执行该操作,因为链接服务器“Server2”的OLE DB提供程序“SQLNCLI10”无法启动分布式事务。
答案 0 :(得分:3)
有关上述问题的文章发布在SQLVillage.com http://www.sqlvillage.com/Articles/Distributed%20Transaction%20Issue%20for%20Linked%20Server%20in%20SQL%20Server%202008.asp
上答案 1 :(得分:2)
如果您不需要更新远程表,则可能需要尝试一起禁用远程事务。
转到链接服务器的属性(假设您使用的是) 选择“服务器选项”并将“启用分布式事务的促销”设置为“False”。
它对我有用。 ;)
答案 2 :(得分:1)
“无法开始分布式事务”通常意味着在一台或两台计算机上禁用DTC。要解决:
dcomcnfg
如果这不能解决问题,那么您可能会遇到这样的问题:KB954950。您确定安装了所有更新吗?
如果不这样做我可能会去服务器故障,我认为他们对这些东西更了解......
答案 3 :(得分:0)
您是否在生产中配置了MSDTC?
两个常见原因是DTC没有在一台或所有机器上启动,并且没有适合所有DTC的域帐户