Teradataモードでは、トランザクションは暗黙的でも明示的でもかまいません。
BEGIN TRANSACTION文とEND TRANSACTION文で囲まれていないリクエストは、暗黙的トランザクションとして扱われます。
次のいずれかを暗黙的トランザクションにすることができます。
- 単一のDML文
- マクロまたはトリガー
- 複文リクエスト
DDL文は複文リクエストでは無効なので、複文リクエストで構成されている暗黙的トランザクションでは無効です。
明示的トランザクションには、BEGIN TRANSACTION文とEND TRANSACTION文に囲まれた1つ以上の文が含まれます。先頭のBEGIN TRANSACTIONでトランザクションが開始し、末尾のEND TRANSACTIONでトランザクションが終了します。明示的トランザクションに複文リクエストを含めることができます。
明示的トランザクションに複数の文が含まれている場合に、DDL文を指定できるのは、その文が末尾の文であり、直後にEND TRANSACTIONがある場合だけです。
エラーが発生すると、リクエストは失敗し、トランザクション全体がアボートされ、ロックはすべて解除されます。
Teradataモードのセッションは、COMMIT文をサポートしません。END TRANSACTION文はコミットでトランザクションを終了しますが、ABORT文とROLLBACK文はロールバックでトランザクションを終了します。