gpt4 book ai didi

sql-server - 为什么即使回滚事务,SQL Server 仍保持可变状态?

转载 作者:行者123 更新时间:2023-12-05 09:19:38 25 4
gpt4 key购买 nike

我写了一个脚本来做一个小实验:

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

如您所见,@variable 在脚本的开头被声明,用 5 初始化,然后在 transaction 中它设置为 6。在 transaction 回滚后,我们显示 @variable,它的值仍然是 6,尽管它的值变化是在 transaction 从那时起回滚。我本以为选择会产生 5 的结果。这种行为的原因是什么?

最佳答案

因为事务是用来维护真实数据的,表中的数据(不是变量,不是表变量)。这就是它的全部内容。

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

关于sql-server - 为什么即使回滚事务,SQL Server 仍保持可变状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com