我有一个长时间运行的查询,包含许多事务(不是嵌套的),如果我取消此查询,或者只是最后一次交易,SQL Server会回滚所有内容吗?
代码如:
Begin tran
Update...1
Commit
Begin tran
Update...2
Commit
Begin tran
Update...3
Commit
假设Update 1
已完成且Update 2
正在运行,如果我取消此查询会怎样?
答案 0 :(得分:3)
由于您单独开始并提交每个事务,即使用显式事务,因此回滚将仅限于当前正在运行的任何事务。之前的那些已经执行,数据已在DB中更改。