匆忙中,我愚蠢地运行了一条语句来更新表,而没有用where
陈述。于是它开始更新表中的所有记录。
我立即注意到该错误并点击了 SQL Server Management Studio 中的“取消执行”按钮,但花了一分钟才停止运行。
所以我的问题是,它是否回滚了更改,或者是否进行了更改,直到被告知停止为止?
仅凭查看无法判断哪些记录已更新。如果表确实做了任何更改,我就必须恢复它。
Thanks.
我想跑:
Update tableA
set newdate = '2019-01-01'
where account = 'abc'
但我跑了:
Update tableA
set newdate = '2019-01-01'
该数据库是事务型数据库。
默认情况下,SQL Server 具有默认的事务行为。这意味着您在查询编辑器中运行的每个句子都类似于:
BEGIN TRANSACTION
<YOUR COMMAND>
COMMIT TRANSACTION
因此,如果您在完成之前取消了交易,则应该回滚交易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)