我已经编写了一个脚本来做一些实验:
use MyDatabase;
declare @variable int;
set @variable = 5;
begin tran test
set @variable = 6;
rollback tran test;
select @variable;
如您所见,在脚本开始处@variable
是declare
d,先用5初始化,然后在a内将transaction
其设置为6。transaction
回滚后,我们显示@variable
,其值仍为6,尽管事实上它的值更改位于transaction
其中,此后一直回滚。我希望该选择产生5的结果。此行为的原因是什么?
因为事务用于维护实际数据,所以表中的数据(不是变量,不是表变量)。这就是全部。
这对于您可能想回滚但从事务内返回一些单独值以指示回滚原因(例如,抛出或只是重新调整变量状态代码)的情况很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句