触发执行顺序

时间:2017-04-14 08:38:25

标签: sql-server tsql database-trigger

我对触发器执行顺序有疑问 为了解释它,我将使用一个例子:
我在表 myTable 上有一个触发器,所以,在这个触发器中有一个关于 myTable 的更新,这会引发同一个触发器的另一个实例(我将调用第一个实例) ' A '和这个新实例' B '),现在的问题是:
将实例 B 以异步方式启动,实例 A 继续执行,或者将是 B 实例启动且实例 将等待 B 完成?

我希望自己解释

抱歉我的英语不好

1 个答案:

答案 0 :(得分:0)

如果内触发器(B)不阻挡外触发器(A),我会非常惊讶。 这样做的原因是确定性 - 如果B以异步方式运行,它可能在A之后之前完成,如果它们都试图更新同一个字段,那么你就无法做到这一点。 ; t保证最终结果。

即使B确实以异步方式运行,触发它的语句只会在所有触发器完成后返回。这是由于DBMS的AtomicConsistent原则。

您可以使用一个设置来确定触发器是否可以设置另一个触发器:Nested Triggers