明示的なTeradataセッション モードのトランザクションの終了を定義し、トランザクションをコミットし、一時ジャーナルを削除します。
明示的なTeradataセッション モード トランザクションは常にBEGIN TRANSACTION文から開始し、Teradataセッション モードで明示的なトランザクションの範囲を定義するには、BEGIN TRANSACTIONとEND TRANSACTIONの両方の文を必ず指定します。
END TRANSACTIONの使用の詳細については、BEGIN TRANSACTIONを参照してください。
ANSI準拠
END TRANSACTIONは、ANSI SQL:2011規格に対するTeradata拡張機能です。
この文は、Teradataセッション モードでだけ有効です。END TRANSACTION文をANSIセッション モードで実行すると、データベースはリクエストをアボートし、エラーを返します。
必要な権限
なし。
BEGIN TRANSACTION/END TRANSACTIONのペアと明示的なトランザクション
Teradataセッション モードで明示的なトランザクションをコード記述する場合、トランザクションはBEGIN TRANSACTION文で開始し、END TRANSACTION文で終わらなければなりません。BEGIN TRANSACTIONを参照してください。
END TRANSACTIONおよび複文リクエスト
複文リクエストには1つのみのEND TRANSACTION文を指定することができます。その場合、リクエスト内の最後に指定しなければなりません。
END TRANSACTION、ABORTおよびROLLBACKの影響の違い
END TRANSACTIONリクエストは終了してトランザクションをコミットし、一時ジャーナルを削除するのに対し、ABORTおよびROLLBACKの各リクエストは、トランザクションをロールバックで終了します。ABORTとROLLBACKを参照してください。
一般に、COMMIT文を使ってトランザクションをコミットする場合のルールは、同様にEND TRANSACTIONにも当てはまります。COMMITを参照してください。
埋め込みSQLを使用したEND TRANSACTIONのルール
- END TRANSACTIONが有効なのは、TRANSACT(BTET)または-tr(BTET)オプションをプリプロセッサに指定した場合だけです。そうしない場合にはエラーが返され、プリコンパイルが失敗します。
- END TRANSACTIONを動的SQL文として実行することはできません。
- END TRANSACTIONが処理される際、トランザクションがすでにアボートされているのでなければ、コミットが行なわれます。