Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Transaktionen verschachteln
BEGIN TRAN
- -- hier eine Verarbeitung
- BEGIN TRAN
- -- hier eine „innere“ Transaktion
- -- z.B. innerhalb einer Schleife
- COMMIT –-innere Transaktion wird commited
- -- hier eine Verarbeitung
- COMMIT –-äußere Transaktion wird commited
Notizen:
Transaktionen können verschachtelt werden, d.h. innerhalb einer BEGIN TRAN ... COMMIT-Klammer kann eine weitere Transaktion mittels BEGIN TRAN ... COMMIT eingebettet sein:
Achtung bei verschachtelten Transaktionen:
COMMIT & ROLLBACK benehmen sich auf einmal unterschiedlich: COMMIT wirkt nur auf die innerste Transaktion, ROLLBACK auf alle verschachtelten Transaktionen bis zur äußersten Ebene!
Ist dieses Verhalten unerwünscht, müssen bennante Transaktionen benützt werden:
BEGIN TRAN[SACTION] {name | @variable}
Dann kann mit
ROLLBACK [TRAN[SACTION]] [name | @variable]
bis zu einer bestimmten Transaktion zurückgerollt werden.