この文は、データベースに加えられた変更を永久的なものにしたり、ユーザ定義のトランザクションを終了するために使用します
COMMIT [ WORK ]
COMMIT TRAN[SACTION] [ transaction-name ]
transaction-name このトランザクションに割り当てられた名前です (任意)。有効な識別子を指定します。ネストされている BEGIN/COMMIT または BEGIN/ROLLBACK 文の最も外側のペアだけでトランザクション名を使用してください。
Adaptive Server Enterprise と Adaptive Server Anywhere のトランザクション・ネストの詳細については、BEGIN TRANSACTION 文を参照してください。セーブポイントの詳細については、SAVEPOINT 文を参照してください。
さまざまなオプションを使用して、COMMIT 文の動作を詳細に制御できます。詳細については、COOPERATIVE_COMMIT_TIMEOUT オプション [データベース]、COOPERATIVE_COMMITS オプション [データベース]、DELAYED_COMMITS オプション [データベース]、DELAYED_COMMIT_TIMEOUT オプション [データベース] を参照してください。コミット接続プロパティを使用して、現在の接続のコミット数を取得できます。
構文 1 COMMIT 文はトランザクションを終了し、このトランザクション中に加えられたすべての変更をデータベースの中で永続的なものにします。
データ定義文はすべて、コミットを自動的に実行します。詳細については、各 SQL 文の「関連する動作」を参照してください。
データベース・サーバが無効な外部キーを検知すると、COMMIT 文は失敗します。その場合、無効な外部キーがあることによってトランザクションが終了できなくなります。通常、外部キー整合性をそれぞれのデータ操作オペレーションごとにチェックします。ただし、データベース・オプション WAIT_FOR_COMMIT が ON に設定されているか、または特定の外部キーが CHECK ON COMMIT 句によって定義されている場合、データベース・サーバは COMMIT 文が実行されるまで整合性のチェックを遅延します。
構文 2 BEGIN TRANSACTION 文と COMMIT TRANSACTION 文をペアで使用すると、ネストされたトランザクションを作成できます。ネストされたトランザクションはセーブポイントに似ています。COMMIT 文がネストされたトランザクションの一番外側で実行された場合は、データベースに対する変更が保存されます。トランザクション内で実行する場合、COMMIT TRANSACTION はトランザクションのネストされているレベルを 1 つずつ減らします。トランザクションがネストされているときは、最も外側の COMMIT だけがデータベースへの変更を保存します。
なし
WITH HOLD によって開かれたカーソルを除き、すべてのカーソルを閉じます。
この接続で宣言されたテンポラリ・テーブルのすべてのローを削除します。ただし、宣言に ON COMMIT PRESERVE ROWS が指定されているテーブルは除きます。
SQL/92 構文 1 は初級レベル機能です。構文 2 は Transact-SQL 拡張です。
SQL/99 構文 1 はコア機能です。構文 2 は Transact-SQL 拡張です。
Sybase Adaptive Server Enterprise でサポートされています。
次の文は現在のトランザクションをコミットします。
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
SQL Anywhere Studio 9.0.2
Copyright © 1989–2005 Sybase, Inc. Portions copyright © 2001–2005 iAnywhere Solutions, Inc. All rights reserved.