SQL Server 2005触发更新远程服务器

时间:2012-05-09 11:49:08

标签: sql-server-2005 triggers msdtc

我创建了一个更新远程SQL Server 2005数据库表的触发器。如果代码是手动查询但在触发器中不起作用,则代码可以工作,因为它会尝试将其置于事务中并因MSDTC而失败。

我们的内部服务器具有对远程服务器的适当访问权限,但远程服务器无法访问内部服务器,这会导致触发器失败吗?

我得到的错误是:

  

返回链接服务器“LinkServer”的OLE DB提供程序“SQLNCLI10”   消息“合作伙伴事务管理器已禁用其支持   远程/网络事务。“。消息7391,级别16,状态2,第1行   由于OLE DB提供程序无法执行该操作   链接服务器“LinkServer”的“SQLNCLI10”无法启动   分布式交易。

我已经看了这个并按照建议设置了一切,但没有快乐?

1 个答案:

答案 0 :(得分:1)

如果远程服务器因任何原因不可用该怎么办?

通常应避免在超出数据库的触发器中执行任何操作,更不用说服务器了。问题是触发器中发生的所有内容都是原始事务的一部分,如果触发器出现任何问题,该事务将被回滚。

如果在到达远程资源时出现间歇性问题(在同一服务器/实例上是不同的数据库,或者是真正的远程数据库),通常不希望这种情况发生。

您是否考虑过将此活动与Service Broker

分离