ROLLBACK (SQL)

#### Search Results

Search

# ROLLBACK (SQL)

`ROLLBACK`

Dieses Dokument behandelt folgende Themen:

- Funktion

- Hinweis für Nicht-Natural-Programme

- Beispiel

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 ROLLBACK - SQL im Teil Natural for Db2 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 geschriebenes 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
    ...

### On this page

- Funktion
- Hinweis für Nicht-Natural-Programme
- Beispiel