触发没有交易?

时间:2008-08-21 12:36:43

标签: sql-server tsql triggers

是否可以创建一个不在事务中的触发器?

我想用触发器更新链接服务器上的数据,但由于防火墙问题,我们无法在两台服务器之间创建分布式事务。

2 个答案:

答案 0 :(得分:2)

我知道这没有帮助,所以我可能会因此而失败,但实际上,解决方案是解决防火墙问题。

我认为如果您使用远程(未链接)服务器(这些天不是首选选项),那么您可以使用SET REMOTE_PROC_TRANSACTIONS OFF来阻止DTC用于远程事务,这可能在这里做正确的事情。但无论如何,这可能无法帮助您使用链接服务器。

答案 1 :(得分:2)

您可能需要的是包含链接服务器更新的队列和从队列中读取数据并更新远程服务器的进程的组合。然后,触发器将作为正常事务的一部分将消息插入队列。此数据将由单独的进程读取并用于更新远程服务器。过程中需要逻辑处理错误(可能还有重试)。

可以使用一个或多个表来实现队列。