Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » トランザクションと独立性レベルの使用

 

トランザクション内のセーブポイント

「セーブポイント」を使用して関連する文をグループ分けすることによって、トランザクション内の重要な状態を識別し、そこに戻ることができます。

SAVEPOINT 文は、トランザクションの中に中間ポイントを定義します。そのポイント以降の変更はすべて ROLLBACK TO SAVEPOINT 文を使ってキャンセルできます。RELEASE SAVEPOINT 文の実行後、またはトランザクションの終了後は、セーブポイントは使えなくなります。セーブポイントは、COMMIT には影響しません。COMMIT が実行されると、トランザクション中に加えられたすべての変更がデータベースの中で永続的なものになります。

RELEASE SAVEPOINT や ROLLBACK TO SAVEPOINT コマンドでは、ロックは解放されません。ロックはトランザクションの最後でのみ解放されます。

セーブポイントの命名とネスト

名前を付けてネストしたセーブポイントを使って、トランザクション内に多数のアクティブなセーブポイントを設定できます。SAVEPOINT と RELEASE SAVEPOINT の間の更新も、その前のセーブポイントにロールバックするか、トランザクション全体をロールバックすればキャンセルできます。トランザクション内の変更は、トランザクションがコミットされるまで確定していません。トランザクションが終了すると、セーブポイントはすべて解放されます。

セーブポイントはバルク・オペレーション・モードでは使用できません。セーブポイントを使用しても、オーバヘッドはほとんど増えません。