Ausführung von Datenbank-Triggern und Ausnahmebehandlung
Die Trigger CONNECT
und DISCONNECT
werden in einer eigens dafür erstellten Transaktion ausgeführt.Diese Transaktion verwendet die Standardisolationsstufe, d. h. Snapshot (Parallelität), Schreiben und Warten.Wenn alles gut geht, wird die Transaktion festgeschrieben.Nicht abgefangene Ausnahmen führen zu einem Rollback der Transaktion und
-
bei einem
CONNECT
-Trigger wird die Verbindung dann unterbrochen und die Ausnahme wird an den Client zurückgegeben -
Bei einem
DISCONNECT
-Trigger werden Ausnahmen nicht gemeldet.Die Verbindung ist wie beabsichtigt unterbrochen
TRANSACTION
-Trigger werden innerhalb der Transaktion ausgeführt, deren Start, Commit oder Rollback sie hervorruft.Die nach einer nicht abgefangenen Ausnahme ausgeführte Aktion hängt vom Ereignis ab:
-
Bei einem
TRANSACTION START
-Trigger wird die Ausnahme an den Client gemeldet und die Transaktion wird zurückgesetzt -
Bei einem
TRANSACTION COMMIT
Trigger wird die Ausnahme gemeldet, die bisherigen Aktionen des Triggers werden rückgängig gemacht und der Commit wird abgebrochen -
Bei einem
TRANSACTION ROLLBACK
-Trigger wird die Ausnahme nicht gemeldet und die Transaktion wie vorgesehen zurückgesetzt.