@@TRANCOUNT (Transact-SQL)
Возвращает число активных транзакций для текущего соединения.
Синтаксис
@@TRANCOUNT
Типы возвращаемых данных
integer
Замечания
Инструкция BEGIN TRANSACTION увеличивает значение @@TRANCOUNT на 1, а инструкция ROLLBACK TRANSACTION уменьшает его до 0 (исключение — инструкция ROLLBACK TRANSACTION savepoint_name, которая не влияет на значение @@TRANCOUNT). Инструкции COMMIT TRANSACTION и COMMIT WORK уменьшают значение @@TRANCOUNT на 1.
Примеры
А. Отображение результатов инструкций 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
Б. Отображение результатов инструкций 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