此代碼用于解決存儲過程間嵌套調(diào)用時的全局原子性問題:
DECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 ) -- 用于嵌套
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
.....
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
DECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 ) -- 用于嵌套
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
.....
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END