@@TRANCOUNT (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric のウェアハウス

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

Transact-SQL 構文表記規則

構文

@@TRANCOUNT  

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

戻り値の型

integer

解説

@@TRANCOUNT の値は、BEGIN TRANSACTION ステートメントが実行されるごとに 1 ずつ増加します。 ROLLBACK TRANSACTION は、@@TRANCOUNT に影響しない ROLLBACK TRANSACTION savepoint_name を除き、@@TRANCOUNT を 0 にデクリメントします。 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  

参照

BEGIN TRANSACTION (Transact-SQL)
COMMIT TRANSACTION (Transact-SQL)
ROLLBACK TRANSACTION (Transact-SQL)
システム関数 (Transact-SQL)