SQL 解説書

ROLLBACK

ROLLBACK ステートメントは、 作業単位または保管点においてデータベースに加えられた変更を撤回するために使用します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは動的 SQL ステートメントの使用によって発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。

許可

権限は不要です。

構文

               .-WORK--.
>>-ROLLBACK----+-------+---------------------------------------->
 
>-----+------------------------------------+-------------------><
      '-TO SAVEPOINT--+-----------------+--'
                      '-savepoint-name--'
 

説明

ROLLBACK ステートメントが実行される作業単位は終了し、 新しい作業単位が開始されます。 その作業単位の過程でデータベースに対して行われた変更はすべて取り消されます。

ただし、以下のステートメントはトランザクションによって制御されず、 これらのステートメントによって行われた変更は ROLLBACK ステートメントの発行とは独立しています。

TO SAVEPOINT
部分的なロールバック (ROLLBACK TO SAVEPOINT) を実行することを指定します。 活動中の保管点がない場合は、SQL エラーが戻されます (SQLSTATE 3B502)。 保管点は、ROLLBACK が正常に完了した後もそのまま存続します。 savepoint-name が指定されない場合は、 最後に設定された保管点までロールバックが実行されます。

この文節を省略して ROLLBACK WORK ステートメントを実行すると、 トランザクション全体がロールバックされます。 また、トランザクション内の保管点は解放されます。

savepoint-name
どの保管点 (savepoint-name) までロールバックするかを指定します。 savepoint-name によって定義された保管点は、 ROLLBACK が正常に完了した後もそのまま存続します。 指定された名前の保管点が存在しない場合は、エラーが戻されます (SQLSTATE 3B001)。 保管点が設定された後に加えられたデータおよびスキーマの変更が取り消されます。

最後のコミット・ポイントまたはロールバック以後に行われた変更を削除します。

   ROLLBACK WORK


脚注:

104
位置による UPDATE ステートメントまたは DELETE ステートメントが出される前に、 FETCH を実行する必要があります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]