@@TRANCOUNT (Transact-SQL)

Возвращает число инструкций BEGIN TRANSACTION, выполненных в текущем соединении.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

@@TRANCOUNT

Возвращаемые типы

integer

Замечания

Инструкция BEGIN TRANSACTION увеличивает значение @@TRANCOUNT на 1. Инструкция ROLLBACK TRANSACTION уменьшает значение @@TRANCOUNT до 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

См. также

Справочник

BEGIN TRANSACTION (Transact-SQL)

COMMIT TRANSACTION (Transact-SQL)

ROLLBACK TRANSACTION (Transact-SQL)

Системные функции (Transact-SQL)