Sql server 触发执行命令
我对触发器的执行顺序有疑问。Sql server 触发执行命令,sql-server,tsql,database-trigger,Sql Server,Tsql,Database Trigger,我对触发器的执行顺序有疑问。 为了解释它,我将使用一个例子: 我在myTable表上有一个触发器,因此,在这个触发器中,myTable上有一个更新,这将抛出同一触发器的另一个实例(我将第一个实例称为“a”,而这个新实例称为“B”),现在的问题是: 实例B将以异步方式启动,实例A将继续执行,还是实例B将启动,实例A将等待B完成 我希望我能解释清楚 对不起,我的英语很差如果内部触发器(B)没有阻止外部触发器(A),我会非常惊讶。 原因可能是决定论——如果B异步运行,它可能在A之前或之后完成,如果它们
为了解释它,我将使用一个例子:
我在myTable表上有一个触发器,因此,在这个触发器中,myTable上有一个更新,这将抛出同一触发器的另一个实例(我将第一个实例称为“a”,而这个新实例称为“B”),现在的问题是:
实例B将以异步方式启动,实例A将继续执行,还是实例B将启动,实例A将等待B完成 我希望我能解释清楚
对不起,我的英语很差如果内部触发器(B)没有阻止外部触发器(A),我会非常惊讶。 原因可能是决定论——如果B异步运行,它可能在A之前或之后完成,如果它们都尝试更新同一字段,则无法保证最终结果是什么 即使B确实异步运行,触发它的语句也只会在所有触发器完成后返回。这是由于数据库管理系统的功能和原理
您可以使用一个设置来确定触发器是否可以触发另一个触发器:为什么要对自己执行此操作?触发器的使用应该谨慎:它们对事物有微妙但可能深刻的影响,我想不出一个好的理由让触发器更新表以重新调用触发器。这只是对触发器执行的好奇,但在已经创建的作品上也有类似的情况