Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 触发执行命令_Sql Server_Tsql_Database Trigger - Fatal编程技术网

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确实异步运行,触发它的语句也只会在所有触发器完成后返回。这是由于数据库管理系统的功能和原理


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

为什么要对自己执行此操作?触发器的使用应该谨慎:它们对事物有微妙但可能深刻的影响,我想不出一个好的理由让触发器更新表以重新调用触发器。这只是对触发器执行的好奇,但在已经创建的作品上也有类似的情况