2014-02-18 63 views
0

我是SQL新手,所以作爲新手我犯了一個錯誤。 我執行更新查詢沒有where子句和現在,而不是up up只有一行它已更新所有行。現在我想撤消它。我GOOGLE了它,並有選項來運行ROLLBACK。但我的查詢是在SQL Server 2012中撤消更新查詢

更新tblname設置模式= ''

所以我覺得回滾將不起作用。另外我沒有配置備份,所以我無法恢復它。我嘗試使用SQLApexlog。但沒有成功。

那麼有什麼辦法可以讓所有記錄回來。

+2

始終使用做一個更新之前BEGIN TRANSACTION或刪除。然後看看結果,如果一切正常COMMIT。 – meziantou

回答

2

號碼完成。把它當成一個教訓。錯誤:

  • 執行手動查詢agaisnt生產數據庫。總是對照副本做這件事,把它們編出來。
  • 未進行備份。
0

作爲一個新手,它可能發生在任何人身上。最重要的是,你不應該再讓它發生。有一個名爲ApexSQL的工具來回滾事務。下載它here

+0

這就是我想要的。但是有5000多條記錄被更新了,所以我已經將所有5000多條記錄都選中了UNDO。 – user3322057

+0

不,您可以使用日誌文件選擇特定事務ID(更新操作)並還原該事務發生的所有更改。 –

+0

請告訴我去哪裏,點擊什麼。我也下載試用版,它說它只能執行第十行。 – user3322057

4

ApexSQL日誌可以幫助意外更新。在此處查看更多信息:How to recover SQL Server data from accidental updates without backups

但是,請記住,當數據庫處於完全恢復模式並且您擁有完整數據庫備份時,它會提供最佳結果。

但也有5000+的記錄進行了更新,所以我必須做選擇那些5000+記錄撤消

是的,但這是很容易選擇。要恢復所有更新的記錄,首先僅選擇數據意外更新的表格(或服務器進程ID,如果可以指定的話)。確保沒有選擇所有其他表格。

enter image description here

在操作選項卡中選擇只更新行

enter image description here

最後,在主電網選擇使用上下文菜單中的所有行(網格中的任意位置單擊右鍵)。實際上,您甚至不必選擇網格中的行來創建撤消腳本,只需在菜單中單擊創建撤銷腳本即可。

甚至還有一種更快的方法來爲所有記錄創建撤消腳本。相反,在網格開口的結果,使用結果導出到文件選項

enter image description here

聲明:我ApexSQL工作作爲支持工程師