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:
ROLLBACK - SQL im Teil Natural for DB2
ROLLBACK - SQL im Teil Natural SQL Gateway
ROLLBACK - SQL im Teil Natural for SQL/DS
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). |
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.
... DELETE FROM SQL-PERSONNEL WHERE NAME = 'SMITH' ROLLBACK ...