题
是否可以创建一个不在事务中的触发器?
我想使用触发器更新链接服务器上的数据,但由于防火墙问题,我们无法在两个服务器之间创建分布式事务。
解决方案
您可能需要的是包含链接服务器更新的队列和从队列读取数据并更新远程服务器的进程的组合。然后,触发器将作为正常事务的一部分将消息插入队列中。该数据将由单独的进程读取并用于更新远程服务器。流程中需要逻辑来处理错误(并可能重试)。
队列可以用一张或多张表来实现。
其他提示
我知道这没有帮助,所以我可能会对此投反对票,但实际上,解决方案是解决防火墙问题。
我认为如果您使用远程(未链接)服务器(目前这不是首选选项),那么您可以使用 SET REMOTE_PROC_TRANSACTIONS OFF 来防止使用 DTC 进行远程事务,这可能在这里做正确的事情。但这可能对您使用链接服务器没有帮助。
不隶属于 StackOverflow