ROLLBACK
|
Dieses Dokument behandelt folgende Themen:
Das SQL-Statement ROLLBACK
entspricht dem Natural-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
gehaltenen Datensätze freigegeben werden.
Bei dem Versuch, Datenbankänderungen, die bereits durch einen
Terminal-I/O 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 Nicht-Natural-Programm aufruft, 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 Nicht-Natural-Programm enthalten.
... DELETE FROM SQL-PERSONNEL WHERE NAME = 'SMITH' ROLLBACK ...