@@TRANCOUNT (Transact-SQL)

適用於:Microsoft Fabric 中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics AnalyticsPlatform System (PDW)Warehouse

傳回已經針對目前連接進行的 BEGIN TRANSACTION 陳述式數目。

Transact-SQL 語法慣例

Syntax

@@TRANCOUNT  

注意

Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

傳回型別

integer

備註

BEGIN TRANSACTION 陳述式會遞增 @@TRANCOUNT,遞增量為 1。 ROLLBACK TRANSACTION 會將 @@TRANCOUNT 遞減到 0,ROLLBACK TRANSACTION savepoint_name 除外,其不影響 @@TRANCOUNT。 COMMIT TRANSACTION 或 COMMIT WORK 會遞減 @@TRANCOUNT,遞減量為 1。

範例

A. 顯示 BEGIN 和 COMMIT 陳述式的作用

下列範例會顯示巢狀 BEGINCOMMIT 陳述式對 @@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 TRANROLLBACK 陳述式對 @@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)