Sql-Server

MSSQL:從備份的 .MDF/.LDF 回滾 DB

  • August 3, 2014

我在 Microsoft Server Management Studio 中誤刪除了一個表,並且沒有正確配置恢復功能。

我有特定數據庫的舊 .mdf 和 .ldf 文件,其中包含已刪除的表。如何使用這些文件正確恢復舊版本?我可以“分離”並重新附加另一個文件夾中存在的舊版本嗎?這個功能是如何工作的?目前的 .mdf/.ldf 文件會發生什麼,我附加的舊文件會被移動到適當的文件夾嗎?

我會將這些文件附加到一個新數據庫,編寫該表的腳本並在您的活動數據庫中重新創建它。

首先,將 *.mdf 和 *.ldf 文件移動到預設數據庫文件位置。這樣,他們將繼承適當的文件級權限。

現在,從現有文件創建一個新數據庫,但使用新名稱:

USE master
GO

CREATE DATABASE mydb_restored ON 
( FILENAME = N'C:\Program Files\MSSQL\Data\mydb.mdf' ),
( FILENAME = N'C:\Program Files\MSSQL\Log\mydb_log.ldf' )
FOR ATTACH
GO

現在,您應該能夠瀏覽舊數據庫,找到有問題的表。右鍵點擊它,選擇“Script Table as”,然後在查詢編輯器中打開“CREATE TO”腳本。

編輯腳本以使用原始數據庫而不是恢復的數據庫,您應該能夠重新創建表。

您還可以生成一個腳本,其中包含已恢復表中的數據

引用自:https://serverfault.com/questions/617615