我犯了一個巨大的錯誤,我執行此查詢:如何回滾不交易
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。 –