2012-08-16 18 views
7

挿入後に起動するFOR INSERTトリガーを作成しました。以下は、トリガーがどのように起動するかを知りたいさまざまなシナリオです。複数の行のトリガーが単一トランザクションで挿入される方法

トリガーはemployeeテーブルにあります。 私は4行を挿入するトランザクションを開始します。私の疑いは、引き金がどのように発射されるかです。

  1. 各行を挿入した直後に起動しますか?
  2. それは我々がトリガーからinserted & deleted特別なテーブルにアクセスすることができ、そのトランザクション内のすべての行が完了した後に

を起動します。

  1. 毎回、これらのテーブルにはいくつの行が存在しますか? 1つのレコードのみ?または複数のレコード?

ありがとうございます。

+3

どのように4行の挿入を行っているのかわからないと、トリガーに何が表示されるかはわかりません。これは4つの独立した挿入文ですか、または4つの行すべてを挿入する1つの挿入文ですか? –

+0

両方のシナリオで知りたいことがあります。 – Ramakrishna

答えて

11

INSERTステートメントの後にトリガーが発生します。

4行に1つの行がある場合、トリガーは各挿入後にinserted特殊テーブルに1レコードで4回発射されます。

1つのINSERTステートメントの4行の場合、挿入後にinserted特殊テーブルに4つのレコードでトリガーが1回だけ発生します。

トランザクション挿入の場合、トリガーで実行するアクションもトランザクションになります。トリガーが内部トランザクションを持っている場合、これは非常に重要です。

関連する問題