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以后的数据变动,和变量没有关系。