我犯了一个巨大的错误,我执行此查询:如何回滚不交易
update Contact set ContaPassword = '7FD736A3070CB9766'
我忘了WHERE
条款,所以这种方式更新所有用户的密码。 :(
有没有办法这个查询之前,我可以恢复数据?
我犯了一个巨大的错误,我执行此查询:如何回滚不交易
update Contact set ContaPassword = '7FD736A3070CB9766'
我忘了WHERE
条款,所以这种方式更新所有用户的密码。 :(
有没有办法这个查询之前,我可以恢复数据?
不能撤消的变化,如果你运行它一个BEGIN TRANSACTION/ROLLBACK之外。这就是为什么我开始任何形式的生产数据更新:。
BEGIN TRANSACTION
-- report the bad or undesired data condition before-hand
SELECT ...
-- change the data
INSERT/UPDATE/DELETE ...
-- ensure we changed a reasonable number of records; may not be accurate if table has triggers
SELECT @@ROWCOUNT
-- get the data condition afterwards and be sure it looks good.
SELECT ...
-- always start with this enabled first
ROLLBACK
-- don't do this until you are very sure the change looks good
-- COMMIT
马丁·史密斯在这个题目中指出this excellent post by Brent Ozar on dba.stackexchange.com在完全恢复模式,就可以检查日志文件,看看有什么变化
而且,俄德指出的那样,如果你有备份,这并不难回到原始数据。您可以在某处恢复备份并复制原始数据。
谢谢你的回答,其实没关系,我们正在为数据库进行每日备份,所以我们恢复了数据,这很酷:) – kbaccouche
从您的备份中恢复。 – Oded
[请参阅此处的答案](http://dba.stackexchange.com/a/998/3690) –
SQL Server中没有Ctrl + Z。 –