方法一(只有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.完成後一般就可以訪問數據庫中的數據了,這時,數據庫本身一般還要問題,解決辦法是,利用
數據庫的腳本創建一個新的數據庫,並將數據導進去就行了.