17.05 - 入れ子のBEGIN TRANSACTION/END TRANSACTIONのペア - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-175K-JPN
Language
日本語 (日本)

BEGIN TRANSACTION/END TRANSACTIONのペアが入れ子になっている場合、Vantageは、BEGIN TRANSACTION文とEND TRANSACTION文がそれぞれ対応しているかどうかを検証します。

一番外側のBEGIN TRANSACTION/END TRANSACTIONペアは明示的トランザクションを定義します。Vantageはトランザクションの入れ子をサポートしないため、内側のBEGIN TRANSACTION/END TRANSACTIONペアはトランザクションに影響を及ぼしません。

埋め込まれた複文リクエストとマクロ実行は、一番外側のBEGIN TRANSACTION/END TRANSACTION明示トランザクションの一部であるとみなされ、この文脈での暗黙のトランザクションとはみなされません。

複文リクエストでは、1つのBEGIN TRANSACTION文のみ指定することができます。BEGIN TRANSACTION文を指定する場合は、リクエストの最初の文でなければなりません。

例えば、以下のような一連のリクエストは、1つの明示的トランザクションとして処理されます。

     BEGIN TRANSACTION;
      SELECT …;
      UPDATE …
      EXEC a(3,4);
        BEGIN TRANSACTION;
         UPDATE …;
         INSERT …
         ;INSERT …;
        END TRANSACTION;
      INSERT …;
     END TRANSACTION;

入れ子のBEGIN TRANSACTION/END TRANSACTIONの途中でエラーが発生した場合には、すべてが最初のBEGIN TRANSACTIONにロールバックされます。