我需要從一個SQL Server表中查看已刪除的記錄(行),其實我使用這個命令我如何查看從SQL Server表中刪除的記錄?
DBCC LOG(MyDatabase,-1)
查看日誌,但我不明白的輸出格式。
存在任何免費的工具,翻譯了SQL Server數據庫的日誌文件或任何文件至極如何解釋該命令顯示的信息DBCC LOG
我正在使用SQL Server 2008的
UPDATE
我的目標不是恢復已刪除的記錄,我只是想看到刪除的記錄或刪除命令執行。
在此先感謝。
我需要從一個SQL Server表中查看已刪除的記錄(行),其實我使用這個命令我如何查看從SQL Server表中刪除的記錄?
DBCC LOG(MyDatabase,-1)
查看日誌,但我不明白的輸出格式。
存在任何免費的工具,翻譯了SQL Server數據庫的日誌文件或任何文件至極如何解釋該命令顯示的信息DBCC LOG
我正在使用SQL Server 2008的
UPDATE
我的目標不是恢復已刪除的記錄,我只是想看到刪除的記錄或刪除命令執行。
在此先感謝。
它可以作爲一個學習練習,儘管文檔很薄。我已經解碼了日誌中的刪除示例,以及日誌中的更新和其他一些項目。
http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/
給出的解釋的長度,它不適合在這裏只是重新發布。
您從DBCC LOG獲得的數據爲十六進制格式,您需要將其轉換爲可讀狀態。
您也可以嘗試使用fn_dblog函數來讀取事務日誌,但您會得到幾乎相同的結果,需要解碼。
還有一個第三方工具ApexSQL登錄可以讀取事務日誌並顯示所有記錄的命令,但它是有代價的。
這裏是一個循序漸進的使用提供讀取使用無證SQL函數的數據庫聯機事務日誌中的所有SQL代碼一步的指導fn_dblog
我覺得特別難做到這一點我最後一次嘗試。有幾個第三方工具,但我沒有發現它們太好。如果您有日誌,可以將它們還原到上次備份的副本,並將其還原到新的數據庫中? – MrEdmundo 2010-11-04 21:19:09
我是第二個MrEdmundo的經驗。日誌實際上並不意味着被用作備份,或者作爲恢復數據的方式。這是難以置信的破譯,我還沒有找到任何工具,通過篩選做了很好的工作。你最好的選擇是採取最後的備份,恢復它,並找出差異(如果可能的話)。 – 2010-11-04 21:58:47
作爲一個教訓,也許補充說,持有記錄之後的任何DML已經在它們上面運行morge表。例如創建一個觸發任何更新之前捕捉到該行,刪除完成並標記行作爲被刪除或用d或U dml_type_id更新。 – Kuberchaun 2010-11-05 00:37:52