@@TRANCOUNT
返回在當前連接上執行的 BEGIN TRANSACTION 語句的數目。
示例:
SELECT '事務處理前', @@TRANCOUNT --值為 0
BEGIN TRAN
SELECT '第一個事務', @@TRANCOUNT --值為 1
-- SELECT 'aa'
BEGIN TRAN
SELECT '第二個事務', @@TRANCOUNT --值為 2
-- SELECT 'bb'
COMMIT TRAN
SELECT '遞交第二個事務', @@TRANCOUNT --值為 1
ROLLBACK TRAN
SELECT '回滾第一個事務', @@TRANCOUNT --值為 0
SELECT '事務處理前', @@TRANCOUNT --值為 0
BEGIN TRAN
SELECT '第一個事務', @@TRANCOUNT --值為 1
-- SELECT 'aa'
SAVE TRAN t1
SELECT '保存第一個事務後', @@TRANCOUNT --值為 1
BEGIN TRAN
SELECT '第二個事務', @@TRANCOUNT --值為 2
-- SELECT 'bb'
ROLLBACK TRAN t1
SELECT '回滾到保存點t1', @@TRANCOUNT --注意這裡的值為 2
IF @@TRANCOUNT>0
ROLLBACK TRAN
SELECT '處理結束', @@TRANCOUNT --為 0