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