ROLLBACK (SQL)

ROLLBACK

Dieses Dokument behandelt folgende Themen:

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen

Siehe auch die folgenden Abschnitte in der Database Management System Interfaces-Dokumentation:


Funktion

Das SQL-Statement ROLLBACK entspricht dem Natural-DML-Statement BACKOUT TRANSACTION. Es macht alle seit dem Beginn der letzten Recovery Unit ausgeführten Datenbankänderungen rückgängig. Eine Recovery Unit beginnt entweder zu Beginn der Session oder nach einem SYNCPOINT-, COMMIT-, END TRANSACTION- oder BACKOUT TRANSACTION-Statement. Außerdem bewirkt ROLLBACK, dass alle während der Transaktion vorgehaltenen Datensätze freigegeben werden.

Wenn ein Programm versucht, Datenbankänderungen, die bereits durch eine Terminal-Ein-/Ausgabe bestätigt wurden, mit ROLLBACK wieder rückgängig zu machen, gibt Natural die Fehlermeldung NAT3711 aus.

Warnung:
Da bei Beendigung einer logischen Arbeitseinheit alle Cursor geschlossen werden, darf ein ROLLBACK-Statement nicht innerhalb einer datenbankverändernden Verarbeitungsschleife stehen, sondern muss nach einer solchen stehen (bzw. bei geschachtelten Schleifen nach der äußersten Schleife).

Hinweis für Nicht-Natural-Programme

Wenn ein Natural-Programm ein in einer anderen Standard-Programmiersprache geschriebenenes externes Programmaufruft, sollte das aufgerufene Programm kein eigenes ROLLBACK-Statement enthalten, falls das aufrufende Natural-Programm selbst auch Datenbankaufrufe durchführt. In diesem Falle sollte das Natural-Programm das ROLLBACK-Statement für das externe Programm absetzen.

Beispiel

...
DELETE FROM SQL-PERSONNEL WHERE NAME = 'SMITH' 
ROLLBACK
...