2012-08-16 8 views
7

Ich habe einen FOR INSERT Trigger erstellt, der nach dem Einfügen ausgelöst wird. Unten sind die verschiedenen Szenarien, für die ich gerne wissen möchte, wie der Trigger ausgelöst wird.Wie der Trigger auf mehrere Zeilen ausgelöst wird, fügen Sie ihn in eine einzige Transaktion ein

Der Trigger befindet sich in einer employee Tabelle. Ich beginne eine Transaktion, wo ich 4 Zeilen einfügen. Mein Zweifel ist, wie Trigger auslösen wird.

  1. Feuert es sofort nach dem Einfügen jeder Zeile?
  2. Wird es nach Abschluss aller Zeilen Feuer in dieser Transaktion

Wir können die inserted & deleted speziellen Tabellen aus dem Trigger zuzugreifen.

  1. Wie viele Zeilen sind in diesen Tabellen jedes Mal vorhanden? Nur ein Rekord? Oder mehrere Datensätze?

Vielen Dank im Voraus.

+3

Ohne zu sehen, wie Sie die Einfügung von 4 Zeilen durchführen, ist es nicht möglich zu sagen, was der Auslöser sehen wird. Sind das 4 separate INSERT-Anweisungen oder eine INSERT-Anweisung, die alle 4 Zeilen einfügt? –

+0

Ich möchte in beiden Szenarien wissen. – Ramakrishna

Antwort

11

Der Trigger wird nach jeder INSERT Anweisung ausgelöst.

Wenn Sie 4 INSERT Anweisungen haben, jede von 1 Zeile, wird der Trigger 4 mal mit 1 Datensatz in der inserted Sondertabelle nach jeder Einfügung ausgelöst.

Wenn Sie 1 INSERT Anweisung von 4 Zeilen haben, wird der Trigger nur einmal mit 4 Datensätzen in der inserted Sondertabelle nach dem Einfügen ausgelöst.

Wenn es sich um transaktionale Einfügungen handelt, sind die Aktionen, die Sie im Trigger ausführen, ebenfalls transaktional. Dies ist sehr wichtig, wenn der Trigger eine interne Transaktion hat.

Verwandte Themen