|
![]() | Příkaz COMMIT | ![]() | Transakce a body návratu | Příkaz SET TRANSACTION | ![]() |
příkaz_ROLLBACK ::= ROLLBACK [ WORK ] [ AND [ NO ] CHAIN ] [ TO SAVEPOINT bod_návratu ] ;
Příkaz ROLLBACK má jeden ze dvou významů v závislosti na tom, zda je v něm uveden bod návratu:
Provedení příkazu ROLLBACK nemá vliv na hodnoty proměnných a na akce provedené v transakci mimo databázi.
Příkaz ROLLBACK bez bodu návratu zruší všechny body návratu vytvořené v transakci. Příkaz ROLLBACK s bodem návratu zruší všechny body návratu vytvořené po vytvoření tohoto bodu návratu (uvedený bod návratu však zůstane zachován).
Upřesnění WORK je zde pouze pro zachování kompatibility a nemá žádný efekt.
Je-li uvedeno AND CHAIN, po ukončení transakce bude zahájena transakce nová se stejnými vlastnostmi jako dosavadní transakce. AND CHAIN se vylučuje s uvedením bodu návratu.
Je-li uvnitř atomického složeného příkazu nebo triggeru proveden příkaz ROLLBACK bez bodu návratu, nastane chybový sqlstate 2D000. Je-li uvnitř atomického složeného příkazu proveden příkaz ROLLBACK s bodem návratu vytvořeným před vstupem do tohoto složeného příkazu nebo s nedefinovaným bodem návratu, nastane chybový sqlstate 3B001.
![]() | Příkaz COMMIT | ![]() | Transakce a body návratu | Příkaz SET TRANSACTION | ![]() |