📖Transaktionssteuerung
Unter einer SQL-Transaktion versteht man einen atomaren Anweisungsblock einer Folge von logisch zusammenhängenden Mutationen.
Merkmale einer Transaktion
Die Anweisungen laufen nach dem Prinzip ab: "ALLES ODER NICHTS" (vgl. ACID).
Vor und nach einer Transaktion herrscht absolute Konsistenz.
Änderungen werden erst gespeichert und für andere Benutzer sichtbar, wenn die
Transaktion beendet ist.
Solange die Transaktion läuft, sind alle betroffenen Daten gesperrt.
Transaktionen sollten wegen der Sperren so kurz wie möglich dauern und möglichst
wenig SQL-Code kapseln.
Es besteht die Möglichkeit des Zurückrollens (Rollback), wenn in der Transaktion ein
Fehler auftritt oder diese abbricht. Es handelt sich dabei um ein implizites Rollback in
den Zustand vor der Transaktion.
Für die Rückgängigmachung wird ein Logbuch geführt, auch Transaktions-Protokoll
genannt. Dieses ist logisch aufgebaut, bestehend aus Anweisungen und nicht aus Zuständen.
Transaktionssteuerung bei SQL Server
Eine Transaktion kann mit folgenden Anweisungen gesteuert werden.
Starten einer Transaktion
BEGIN TRANSACTION [name];
Name für bessere Übersicht optional
Savepoint erstellen
SAVE TRANSACTION name;
Zurückrollen bis zum Savepoint möglich
Transaktion und Anweisungen vor Savepoint bleiben bestehen
Transaktion abschliessen
COMMIT TRANSACTION [name];
Alle Änderungen werden unwiderruflich gespeichert und für alle sichtbar
Transaktion zurückrollen
ROLLBACK TRANSACTION [name];
Alle Änderungen werden unwiderruflich verworfen
Jede explizit gestartete Transaktion muss explizit beendet werden. Ein BEGIN
muss also in jedem Fall entweder mit einem COMMIT
oder mit einem ROLLBACK
geschlossen werden.
Last updated
Was this helpful?