Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
データベースを永続的に変更したり、ユーザー定義のトランザクションを終了したりします。
COMMIT [ WORK ]
COMMIT TRAN[SACTION] [ transaction-name ]
transaction-name このトランザクションに割り当てられた名前です (任意)。有効な識別子を指定します。ネストされている BEGIN/COMMIT または BEGIN/ROLLBACK 文の最も外側のペアだけでトランザクション名を使用してください。
Adaptive Server Enterprise と SQL Anywhere のトランザクションネストの詳細については、BEGIN TRANSACTION 文 [T-SQL]を参照してください。
さまざまなオプションを使用して、COMMIT 文の動作を詳細に制御できます。次の項を参照してください。
現在の接続のコミット数を返すには、Commit 接続プロパティを使用できます。
構文 1 COMMIT 文は、トランザクションを終了し、このトランザクション中で行われたすべての変更内容をデータベースに永続化します。
すべてのデータ定義文で、コミットが自動的に実行されます。詳細については、各 SQL 文の「関連する動作」を参照してください。
データベースサーバーが無効な外部キーを検知すると、COMMIT 文は失敗します。この動作によって、無効な外部キーを持つトランザクションは終了できなくなります。通常、外部キー整合性をそれぞれのデータ操作オペレーションごとにチェックします。ただし、データベースオプション wait_for_commit が On に設定されているか、または特定の外部キーが CHECK ON COMMIT 句によって定義されている場合、データベースサーバーは COMMIT オプションが実行されるまで整合性のチェックを遅延します。
COMMIT 単独での使用は、COMMIT WORK と同じです。
構文 2 BEGIN TRANSACTION 文と COMMIT TRANSACTION 文をペアで使用すると、ネストされたトランザクションを作成できます。ネストされたトランザクションはセーブポイントに似ています。COMMIT 文がネストされたトランザクションの一番外側で実行された場合は、データベースに対する変更が保存されます。トランザクション内で実行する場合、COMMIT TRANSACTION はトランザクションのネストされているレベルを 1 つずつ減らします。トランザクションがネストされているときは、最も外側の COMMIT だけがデータベースへの変更を保存します。
構文 2 は Transact-SQL 拡張です。
Interactive SQL では、次の方法でも COMMIT を実行できます。
[Ctrl + Shift + C] キーを押す。
[SQL] » [コミット] をクリックします。
Interactive SQL で、[SQL] メニューから、またはキーボードショートカットで COMMIT を実行しても、[SQL 文] ウィンドウ枠の内容は変更されませんが、[結果] ウィンドウ枠の [結果] タブはクリアされます。
なし
WITH HOLD によって開かれたカーソルを除き、すべてのカーソルを閉じます。
この接続で宣言されたテンポラリテーブルのすべてのローを削除します。ただし、宣言に ON COMMIT PRESERVE ROWS が指定されているテーブルは除きます。
データベースでトランザクションログを使用していない場合、COMMIT 操作ごとに暗黙的なチェックポイントが発生します。
SQL/2008 構文 1 はコア機能です。構文 2 は Transact-SQL 拡張です。
次の文は現在のトランザクションをコミットします。
COMMIT;
次の Transact-SQL バッチは、@@trancount の値を、連続した値 0、1、2、1、0 で報告します。
PRINT @@trancount BEGIN TRANSACTION PRINT @@trancount BEGIN TRANSACTION PRINT @@trancount COMMIT TRANSACTION PRINT @@trancount COMMIT TRANSACTION PRINT @@trancount go