Home [SQL] @@TRANCOUNT (檢視目前啟用 BEGIN TRAN 的數量)
Post
Cancel

[SQL] @@TRANCOUNT (檢視目前啟用 BEGIN TRAN 的數量)

使用 @@TRANCOUNT ,檢視目前連線已經啟用 BEGIN TRAN 的數量。

  • 回傳 1,表示已經有 1 個 BEGIN TRAN 存在。
  • 若沒有 BEGIN TRAN,預設回傳 0。

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

範例

1
2
3
4
5
6
7
8
9
10
11
12
--SET XACT_ABORT ON
select @@TRANCOUNT --trancount=0
begin tran --trancount+1
select @@TRANCOUNT --trancount=1
begin tran --trancount+1
select @@TRANCOUNT --trancount=2
begin tran --trancount+1
select @@TRANCOUNT --trancount=3
commit tran --trancount-1
select @@TRANCOUNT --trancount=2
rollback tran --trancount減到0
select @@TRANCOUNT --trancount=0

MSDN - @@TRANCOUNT (Transact-SQL)

This post is licensed under CC BY 4.0 by the author.