链接服务器相关

时间:2010-02-04 03:36:24

标签: sql-server sql-server-2008

我有两个SQL Server实例:

  • Server1(SQL Server 2008)
  • Server2(SQL Server 2005)

我正在从Server1执行存储过程,该存储过程引用Server2上的表。

在我的测试环境中工作正常:

  • Server1运行Vista SP2,SQL Server 2008;
  • Server2运行Windows XP SP2,SQL Server 2005。

但是,它无法在生产环境中运行:

  • Server1运行Vista SP1,SQL Server 2008;
  • Server2运行Windows XP SP2,SQL Server 2005。

我收到的错误消息是:

  

链接服务器“Server2”的OLE DB提供程序“SQLNCLI10”返回消息“没有事务处于活动状态。”。
  Msg 7391,Level 16,State 2,Line 21
  无法执行该操作,因为链接服务器“Server2”的OLE DB提供程序“SQLNCLI10”无法启动分布式事务。

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

如果您不需要更新远程表,则可能需要尝试一起禁用远程事务。

转到链接服务器的属性(假设您使用的是) 选择“服务器选项”并将“启用分布式事务的促销”设置为“False”。

它对我有用。 ;)

答案 2 :(得分:1)

“无法开始分布式事务”通常意味着在一台或两台计算机上禁用DTC。要解决:

  • 开始 - >运行dcomcnfg
  • 展开组件服务,计算机
  • 右键单击“我的电脑”,转到“属性”
  • 点击MSDTC标签
  • 在Vista上:单击“默认属性”选项卡,选中“在此计算机上启用分布式COM”
  • 在XP上:单击“MSDTC”选项卡,单击“安全配置”,选中“网络DTC访问”。
  • 单击“确定”,重新启动MSDTC。

如果这不能解决问题,那么您可能会遇到这样的问题:KB954950。您确定安装了所有更新吗?

如果不这样做我可能会去服务器故障,我认为他们对这些东西更了解......

答案 3 :(得分:0)

您是否在生产中配置了MSDTC

两个常见原因是DTC没有在一台或所有机器上启动,并且没有适合所有DTC的域帐户