触发没有交易?


2

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

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

2

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

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


2

我知道这没什么帮助,所以我可能会为此付出代价,但实际上,解决方案是修复防火墙问题。

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