@@TRANCOUNT (Transact-SQL)

現在の接続で実行された BEGIN TRANSACTION ステートメントの数を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

@@TRANCOUNT

戻り値の型

integer

説明

@@TRANCOUNT の値は、BEGIN TRANSACTION ステートメントが実行されるごとに 1 ずつ増加します。ROLLBACK TRANSACTION ステートメントを実行すると、@@TRANCOUNT は 1 つずつ減少し、最終的には 0 になります。ただし、ROLLBACK TRANSACTION savepoint_name は例外で、このステートメントは @@TRANCOUNT に影響しません。COMMIT TRANSACTION または COMMIT WORK を実行すると、@@TRANCOUNT は 1 ずつ減少します。

A. BEGIN ステートメントと COMMIT ステートメントの影響を確認する

次の例では、BEGIN ステートメントと COMMIT ステートメントを入れ子にした場合の @@TRANCOUNT 変数に対する影響を確認します。

PRINT @@TRANCOUNT
--  The BEGIN TRAN statement will increment the
--  transaction count by 1.
BEGIN TRAN
    PRINT @@TRANCOUNT
    BEGIN TRAN
        PRINT @@TRANCOUNT
--  The COMMIT statement will decrement the transaction count by 1.
    COMMIT
    PRINT @@TRANCOUNT
COMMIT
PRINT @@TRANCOUNT
--Results
--0
--1
--2
--1
--0

B. BEGIN ステートメントと ROLLBACK ステートメントの影響を確認する

次の例では、BEGIN TRAN ステートメントと ROLLBACK ステートメントを入れ子にした場合の @@TRANCOUNT 変数に対する影響を確認します。

PRINT @@TRANCOUNT
--  The BEGIN TRAN statement will increment the
--  transaction count by 1.
BEGIN TRAN
    PRINT @@TRANCOUNT
    BEGIN TRAN
        PRINT @@TRANCOUNT
--  The ROLLBACK statement will clear the @@TRANCOUNT variable
--  to 0 because all active transactions will be rolled back.
ROLLBACK
PRINT @@TRANCOUNT
--Results
--0
--1
--2
--0