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 リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

COMMIT 文

この文を使用して、データベースを永続的に変更したり、ユーザ定義のトランザクションを終了します。

構文 1
COMMIT [ WORK ]
構文 2
COMMIT TRAN[SACTION] [ transaction-name ]
パラメータ
備考

構文 1   COMMIT 文は、トランザクションを終了し、このトランザクション中で行われたすべての変更内容をデータベースに永続化します。

データ定義文はすべて、コミットを自動的に実行します。詳細については、各 SQL 文の「関連する動作」を参照してください。

データベース・サーバが無効な外部キーを検知すると、COMMIT 文は失敗します。その場合、無効な外部キーがあることによってトランザクションが終了できなくなります。通常、外部キー整合性をそれぞれのデータ操作オペレーションごとにチェックします。ただし、データベース・オプション wait_for_commit が On に設定されているか、または特定の外部キーが CHECK ON COMMIT 句によって定義されている場合、データベース・サーバは COMMIT オプションが実行されるまで整合性のチェックを遅延します。

構文 2   BEGIN TRANSACTION 文と COMMIT TRANSACTION 文をペアで使用すると、ネストされたトランザクションを作成できます。ネストされたトランザクションはセーブポイントに似ています。COMMIT 文がネストされたトランザクションの一番外側で実行された場合は、データベースに対する変更が保存されます。トランザクション内で実行する場合、COMMIT TRANSACTION はトランザクションのネストされているレベルを 1 つずつ減らします。トランザクションがネストされているときは、最も外側の COMMIT だけがデータベースへの変更を保存します。

構文 2 は Transact-SQL 拡張です。

パーミッション

なし

関連する動作

WITH HOLD によって開かれたカーソルを除き、すべてのカーソルを閉じます。

この接続で宣言されたテンポラリ・テーブルのすべてのローを削除します。ただし、宣言に ON COMMIT PRESERVE ROWS が指定されているテーブルは除きます。

参照
標準と互換性
  • SQL/2003   構文 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