根据多个资源提供的资讯,比如这个,触发器中执行的查询会自动包含在一个事务中。如果在触发器代码中存在任何分布式查询,则该事务自动升级为分布式事务。简单来说,是否有办法防止这种行为?我正在寻求一种明确的方法以防止我的触发器代码在事务上下文中运行。
另一个想法是不要让触发器执行工作,而是将工作项弹出到队列表中,并使后台进程持续运行以处理队列。如果您的工作项在inserted
/deleted
中的数据集上操作,则这并不容易做到,但在没有更多上下文的情况下,这似乎是一个可行的选择。
我不知道有没有办法防止触发器成为调用事务的一部分 - 实际上这正是整个问题的关键所在。