ROLLBACK(SQL)

ROLLBACK

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連機能グループ:データベースへのアクセスと更新


関数

SQL ステートメント ROLLBACK は Natural ステートメント BACKOUT TRANSACTION に対応します。最後のリカバリ単位の開始以降に行われたデータベース更新をすべて元に戻します。リカバリ単位は、セッションの開始後、または最後の SYNCPOINTCOMMITEND TRANSACTION または BACKOUT TRANSACTION ステートメントの後に開始できます。このステートメントも、トランザクション中に保持されていたすべてのレコードを解放します。

端末 I/O によりすでにコミットされている更新をプログラムでバックアウトしようとした場合、対応する Natural エラーメッセージ(NAT3711)が返されます。

注意:
作業の論理ユニット終了時には全カーソルがクローズされるため、ROLLBACK ステートメントはデータベース更新処理ループ内に指定しないでください。更新処理ループの外側、またはネストされたループの一番外側のループの後に指定する必要があります。

Natural 以外のプログラムについて

Natural プログラムから他の標準プログラミング言語で記述された外部プログラムを呼び出す場合、Natural プログラムでもデータベースコールを発行するのであれば、外部プログラムに独自の ROLLBACK ステートメントが含まれないようにする必要があります。呼び出し側の Natural プログラムが外部プログラムに代わって ROLLBACK ステートメントを発行する必要があります。

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