方法一(只有mdf沒有記錄檔的可以恢複) 證明有效
1.建立同名資料庫。
2.把該資料庫設定為離線。
3.刪除其記錄檔(.LDF),不刪除後邊的過程執行通不過。
4.在在查詢分析器中以超級使用者登入,執行以下預存程序,必須以超級使用者登入,這是系統級存存處過程。
EXEC sp_detach_db @dbname = 'xxx' //@dbnam 為要還原的資料庫
EXEC sp_attach_single_file_db @dbname = 'xxx', @physname = 'yyyy' //@physname 為.mdf檔案路徑
5.把該資料庫設定為聯機。
6.重新整理資料庫,表出來了,資料完好
方法二(無記錄檔或記錄檔損壞)
1.建立一個同名的資料庫
2.再停掉sql server(注意不要分離資料庫)
3.用原資料庫的資料檔案覆蓋掉這個建立的資料庫
4.再重啟sql server
5.此時開啟企業管理器時會出現置疑,先不管,執行下面的語句(注意修改其中的資料庫名)
複製代碼 代碼如下:use master
go
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
go
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的資料庫名''
go
sp_dboption '置疑的資料庫名'', 'single user', 'true'
go
DBCC CHECKDB('置疑的資料庫名'')
go
update sysdatabases set status =28 where name='置疑的資料庫名''
go
sp_configure 'allow updates', 0 reconfigure with override
go
sp_dboption '置疑的資料庫名'', 'single user', 'false'
go
6.完成後一般就可以訪問資料庫中的資料了,這時,資料庫本身一般還要問題,解決辦法是,利用
資料庫的指令碼建立一個新的資料庫,並將資料導進去就行了.