SAVEPOINT

トランザクションの保存ポイントを設定します。現在のトランザクションを部分的なロールバックとしてそのポイントまでロールバックできます。

構文:

>>---EXEC SQL-SAVEPOINT-name---->

 >--.-----------------------------------------------------------.---END-EXEC---><  
    +--ON ROLLBACK RETAIN CURSORS--.----------------------------+
                                   +--ON ROLLBACK RETAIN LOCKS--+

>>---EXEC SQL-SAVE-.-TRANSACTION--.--name-- END-EXEC---><  
                   +-TRAN---------+

制限事項:

SQL Server では fire hose カーソルを使用した保存ポイントは許可されないため、保存ポイントを含む SQL Server アプリケーションをコンパイルする場合には、RO_CURSOR=FF プリミティブ指令を設定して BEHAVIOR 指令を指定する必要があります。

コメント:

1 つのトランザクションで複数の保存ポイントを定義できます。

一意の名前を使用して保存ポイントを設定し、さらに別の保存ポイントを同じ一意の名で保存すると、名前を付けたその保存ポイントは現在のトランザクション状態にリセットされます。

保存ポイントにロールバックした後のカーソルとロックの動作は、データベース特有の動作になります。詳細は、データベースのベンダから提供されるマニュアルを参照してください。

例:

EXEC SQL
   SAVEPOINT SP1
END-EXEC

EXEC SQL
    SAVEPOINT PHASE2 ON ROLLBACK RETAIN CURSORS
END-EXEC