为什么即使回滚事务,SQL Server也会保持可变状态?

拉霍斯·阿帕德(Lajos Arpad)

我已经编写了一个脚本来做一些实验:

use MyDatabase;
declare @variable int;
set @variable = 5;
begin tran test
    set @variable = 6;
rollback tran test;
select @variable;

如您所见,在脚本开始处@variabledeclared,先用5初始化,然后在a内将transaction其设置为6。transaction回滚后,我们显示@variable,其值仍为6,尽管事实上它的值更改位于transaction其中,此后一直回滚。我希望该选择产生5的结果。此行为的原因是什么?

污水处理厂

因为事务用于维护实际数据,所以表中的数据(不是变量,不是表变量)。这就是全部。

这对于您可能想回滚但从事务内返回一些单独值以指示回滚原因(例如,抛出或只是重新调整变量状态代码)的情况很有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么即使模型存在 Rails 也会回滚?

为什么在INSERT INTO失败时我的事务会自动回滚?

为什么SQL事务无法回滚

如果取消,T-SQL事务是否会回滚?

使用THROW时,SQL Server回滚我的事务

SQL Server 事务回滚或使用 Petapoco 提交?

SQL Server如何始终回滚整个事务

从 SQL Server 中的审计表回滚事务的过程

即使您回滚事务,更新和插入也会导致索引碎片

即使非事务方法或控制器中捕获到异常,Spring事务方法也会回滚

我可以回滚SQL Server中具有多个内部事务的事务吗?

通过回滚NUnit,SQL Server和UI测试中的事务来维护数据库已知状态的正确方法

SQL Server-事务会因错误而回滚?

如何在 (C#) ASP.NET 和 SQL Server 中回滚多个事务

如何在SQL Server中的触发器中修复If条件与回滚事务

SQL Server:如果事务回滚,则不发送电子邮件

tSQLt.ExceptException 不适用于 SQL Server 中的回滚事务

事务提交或回滚时如何尝试捕获或返回成功标志-SQL Server

如果不在Hibernate中回滚事务会怎样?

无状态EJB如何回滚JPA事务

为什么即使我没有显式启动JPA / Hibernate事务也仍处于活动状态

为什么SQL Server死锁受害者错误(1205)会终止所有事务?

子 mysql 事务中处理的错误是否会触发调用它的 mysql 事务中的回滚

在 SQL Server 中检测回滚

回滚Sql Server 2008查询

为什么即使在update-rc.d remove命令之后,redis-server服务仍保持启动状态?

为什么从共享锁切换到独占锁会导致死锁并回滚所有其他被阻止的事务?

SQL Codeigniter事务回滚多路访问回滚

是否会回滚此存储过程中的所有事务