【发布时间】:2021-01-02 16:40:12
【问题描述】:
简单查询: 在 UPDATE 之前,EffectiveStartDt 的值为 NULL 在 UPDATE 和 ROLLBACK 之后,我希望它回到 NULL
begin tran t1
update MasterPayor
set EffectiveStartDt = '2020-09-17'
where MasterPayorId = 1
commit
rollback tran t1
我已经定义了事务,但我仍然收到回滚错误
【问题讨论】:
-
您在更新后立即提交了事务,因此该事务不再可用
-
我还能在哪里提交......当然不是在回滚之后??
-
如果你想回滚事务你不需要提交。它是一个非此即彼的/或。如果您想将更改提交到数据库,请使用 Commit,如果您想回滚,请使用 rollback。
-
这解决了问题,谢谢......但是,为什么有人会使用 COMMIT,看到即使没有它,数据库也会更新,并存储新值。
-
如果您使用 begin tran 并且未提交,则关闭查询窗口时事务将回滚。 stackoverflow.com/questions/4896479/…。如果你不使用 begin tran 那么查询将被提交
标签: sql sql-server transactions rollback