批处理更新中的SQL Server触发器执行

时间:2015-09-01 06:25:17

标签: sql sql-server triggers

我需要知道触发器执行如何发生在下面的场景中。

我在表中有20条记录,并且该表上有AFTER INSERT, UPDATE触发器。当我使用MERGE或批量更新语句更新该表中的所有记录时,触发器将如何执行?

它是否逐行执行?

或者每批执行一次(所有20条记录一次)?

如果每批执行一次,我们是否需要在触发器内写一个循环来执行每一行的任务?

1 个答案:

答案 0 :(得分:5)

SQL Server中的触发器始终每批执行一次 - 对于每一行"没有选项" SQL Server中的触发器。

当您批量更新表时,触发器将在inserteddeleted伪表中一次性接收所有更新的行,并需要相应地处理它们 - 作为数据集 - 不是单行