2012-08-16 160 views
7

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

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

  1. 插入每一行后会立即激发吗?
  2. 将其解雇所有行结束后,在该事务

我们能够从触发访问inserted & deleted特殊表。

  1. 每次会在这些表中显示多少行?只有一个记录?或多个记录?

在此先感谢您。

+3

没有看到你如何执行4行插入,不可能说出触发器将看到什么。这是4个单独的插入语句,还是一个插入语句插入所有4行? – 2012-08-16 08:48:54

+0

我想知道这两种情况。 – Ramakrishna 2012-08-16 10:25:28

回答

11

触发器将在每个INSERT声明后触发。

如果你有4个INSERT的声明,每个1行,触发器会在每个插入之后的inserted特殊表中被触发4次,并带有1条记录。

如果您有4个行的语句,则在插入后触发器将被触发仅1次,并且在inserted特殊表中有4条记录。

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