我有一个带有单个UPDATE命令的语句。如果我手动终止它会回滚所有结果吗?
答案 0 :(得分:3)
如果没有错误发生,则无法回滚此语句
Update table
Set MyCol = 'foo'
Where MyOtherCol = 'bar'
但是,您可以在SQL中执行以下操作:
begin transaction
Update table
Set MyCol = 'foo'
Where MyOtherCol = 'bar'
然后执行您可能需要执行的任何检查。如果一切正常,那么您可以运行以下内容。
commit transaction
如果您需要取消更新,可以运行此
rollback transaction
答案 1 :(得分:3)
如果您终止发布更新的连接,或以其他方式设法取消查询,则将回滚更新。 SQL中的每个DML语句都在事务的上下文中运行 - 如果不存在,SQL Server将automatically create一个,并在语句完成后提交它。