@@TRANCOUNT (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のウェアハウス
現在の接続で実行された BEGIN TRANSACTION ステートメントの数を返します。
構文
@@TRANCOUNT
Note
この構文は、Azure Synapse Analytics のサーバーレス 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)