複数のSQL文をグループ化すると、目的の論理データベース タスクを実行し、トランザクション中にステートメントの失敗またはエラーが発生した場合でもTeradata Databaseの自動ロールバック機能を活用できます。
ただし、それぞれのトランザクションで各ステートメントを実行する場合、グループあたり1つのSQL文を指定する必要があります。
複数のSQL文がAPPLY文の1つのDMLグループで指定されると、グループにDDL文が含まれている場合、そのDDL文が暗黙的トランザクションの最後のステートメント、つまりグループ内の最後のステートメントであるという規則がTeradata Databaseによって実施されます。
このため、括弧内に指定された情報(下記参照)はグループを表わし、ステートメントの正当性は以下のように決定されます。
- グループ1: (DDL)は有効です。
- グループ2: (DDL, DDL)は、1つのDDL文のみ許可されるため、無効です。
- グループ3: (DML, DML, DDL)は有効です。
- グループ4: (DML, DML, DML)は、グループがDDL文を含まない場合でも有効です。
- グループ5: (DML, DDL, DML)は、DDL文がグループの最後のステートメントでないため、無効です。
スクリプトにサポートされていないまたは無効なステートメントが含まれている場合、ジョブは終了するため、続行する前にスクリプトを修正できます。