触发器将在单个事务中插入多行时触发

时间:2012-08-16 08:23:20

标签: sql sql-server triggers

我创建了一个FOR INSERT触发器,插入后会触发。以下是我想知道触发器将如何触发的不同场景。

触发器位于employee表上。 我开始一个事务,我插入4行。我怀疑触发器是如何触发的。

  1. 插入每一行后会立即开火吗?
  2. 在完成该交易中的所有行后,它是否会触发
  3. 我们可以访问inserted&来自触发器的deleted个特殊表格。

    1. 每次在这些表中会出现多少行?只有一个记录?还是多条记录?
    2. 提前谢谢。

1 个答案:

答案 0 :(得分:13)

触发器将在每个INSERT语句后触发。

如果你有4个INSERT语句,每行1行,每次插入后,inserted特殊表中的1条记录将触发4次触发器。

如果你有4行的INSERT个语句,那么在插入后,inserted特殊表中的4条记录将触发一次触发器。

如果它们是事务性插入,则您在触发器中执行的操作也将是事务性的。如果触发器有内部事务,这非常重要。