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

Sql server 2005 更新远程服务器的SQL Server 2005触发器,sql-server-2005,triggers,msdtc,Sql Server 2005,Triggers,Msdtc,我创建了一个触发器,用于更新远程SQLServer2005数据库表。如果代码是手动查询,则该代码可以工作,但不会在触发器中工作,因为它试图将其放置在事务中,但由于MSDTC而失败 我们的内部服务器有权访问远程服务器,但远程服务器无权访问内部服务器,这会导致触发器失败吗 我得到的错误是: 返回链接服务器“LinkServer”的OLE DB提供程序“SQLNCLI10” 消息“合作伙伴事务管理器已禁用对的支持” 远程/网络交易。”。味精7391,16级,状态2,第1行 无法执行该操作,因为OLE

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

我们的内部服务器有权访问远程服务器,但远程服务器无权访问内部服务器,这会导致触发器失败吗

我得到的错误是:

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


我已经查过了,并按照建议设置了所有内容,但没有乐趣?

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

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

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


你有没有考虑过将这项活动与之脱钩,例如?

好吧,这是有意义的,我同意触发器不是最好的方法,我有一个日期表,我们可以输入日期,我需要它来更新我们的网站DB服务器,那么服务代理是最好的方法吗?@LukeWilkinson-这是我通常建议的-除非源数据库和目标数据库中的表在结构和数据方面是相同的-在这种情况下,我会改为查看。谢谢,我有一些很紧的截止日期,所以我这次做的是一个触发器,它启动一个调用存储过程的作业,并且工作正常,可能不推荐,但符合要求。