Ein schwierig zu verstehender Aspekt bei Triggern ist die Reihenfolge, in der Trigger ausgelöst werden, wenn ein auslösender Vorgang Auswirkungen auf mehrere Trigger hat. Ob konkurrierende Trigger ausgelöst werden und in welcher Reihenfolge sie ausgelöst werden, hängt von zwei Dingen ab: Triggertyp (BEFORE, INSTEAD OF oder AFTER) und Triggerbereich (Zeilen- oder Anweisungsebene).
Für Trigger auf Zeilenebene gilt: BEFORE-Trigger werden vor INSTEAD OF-Triggern ausgelöst, die wiederum vor AFTER-Triggern ausgelöst werden. Alle Trigger auf Zeilenebene für eine bestimmte Zeile werden vor den Triggern für die Folgezeile ausgelöst.
Bei Triggern auf Anweisungsebene werden INSTEAD OF-Trigger vor AFTER-Triggern ausgelöst. BEFORE-Trigger auf Anweisungsebene werden nicht unterstützt.
Wenn es konkurrierende AFTER-Trigger auf Anweisungs- und Zeilenebene gibt, werden die AFTER-Trigger auf Anweisungsebene ausgelöst, nachdem alle Trigger auf Zeilenebene beendet wurden.
Wenn es konkurrierende INSTEAD OF-Trigger auf Anweisungs- und Zeilenebene gibt, werden die Trigger der Zeilenebene nicht ausgelöst.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |