sqL SERVER 数据库回滚解决办法
sqL SERVER 数据库回滚
declare @a int
declare @b char
set @a =0
set @b =''
-- The BEGIN TRAN statement will increment the
-- transaction count by 1.
BEGIN TRAN tr
PRINT @@TRANCOUNT
print @a
print @b +'b'
set @a =@a+1
print @a
select @a as a into #aaa
--BEGIN TRAN
-- PRINT @@TRANCOUNT
-- set @a =@a+1
-- print @a
-- print @b+'b'
rollback tran tr
print @@trancount
--set @a =@a+1
print @a
print @b
想知道,为啥那个SQL 语句回滚了,但是变量却没有回滚呢,难道我理解错了??
------解决思路----------------------
变量不随回滚事务回滚
------解决思路----------------------
只有事务回滚,没有变量回滚。
如果要实现变量回滚,那就只有自己在回滚段中重新设置变量的值。
------解决思路----------------------
up!
------解决思路----------------------
回滚只是取消BEGIN TRAN以后的数据变动,和变量没有关系。
declare @a int
declare @b char
set @a =0
set @b =''
-- The BEGIN TRAN statement will increment the
-- transaction count by 1.
BEGIN TRAN tr
PRINT @@TRANCOUNT
print @a
print @b +'b'
set @a =@a+1
print @a
select @a as a into #aaa
--BEGIN TRAN
-- PRINT @@TRANCOUNT
-- set @a =@a+1
-- print @a
-- print @b+'b'
rollback tran tr
print @@trancount
--set @a =@a+1
print @a
print @b
想知道,为啥那个SQL 语句回滚了,但是变量却没有回滚呢,难道我理解错了??
------解决思路----------------------
变量不随回滚事务回滚
------解决思路----------------------
只有事务回滚,没有变量回滚。
如果要实现变量回滚,那就只有自己在回滚段中重新设置变量的值。
------解决思路----------------------
up!
------解决思路----------------------
回滚只是取消BEGIN TRAN以后的数据变动,和变量没有关系。