sql2005-sqlserver 2012附加單個mdf數(shù)據(jù)文件(還原mdf文件),沒有日志文件
發(fā)布時間:2010/11/10 11:11:16 作者: 閱讀:1103
廣告:
sql2005附加單個mdf數(shù)據(jù)文件,沒有日志文件
一.刪除ldf文件附加
二.命令方法
我把原來的數(shù)據(jù)庫分離后,直接把日志文件給干掉了。原來在SQL 2000里經(jīng)常這么干,只用一個mdf就附加了。沒想到sql2005居然不行。我試驗了一圈 終于找到一個成功的方法。轉(zhuǎn)載,供后來者參考。
SQL2005 如何在沒有日志文件的情況下如何恢復MDF數(shù)據(jù)庫文件
第一步:先建立一個同名數(shù)據(jù)庫,停止SQL SERVER2005,將沒有日志的的.mdf數(shù)據(jù)庫文件覆蓋剛新建的.mdf數(shù)據(jù)庫文件,重新啟動數(shù)據(jù)庫。
第三步:在查詢分析器中運行如下代碼:
alter database LittleItalyVineyard set emergency --將數(shù)據(jù)庫設置為緊急狀態(tài) use master declare @databasename varchar(255) set @databasename='LittleItalyVineyard' --你的.mdf文件文件名 exec sp_dboption @databasename, N'single', N'true' --將目標數(shù)據(jù)庫置為單用戶狀態(tài) dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' --將目標數(shù)據(jù)庫置為多用戶狀態(tài)
執(zhí)行出現(xiàn)“數(shù)據(jù)庫其他多個文件與數(shù)據(jù)庫主文件不匹配….”錯誤,再執(zhí)行一次即可。
上面代碼sql server 2012 r2會提示:找不到存儲過程 sp_dboption
2005:exec sp_dboption @databasename, N’single‘, N’true’ —將目標數(shù)據(jù)庫置為單用戶狀態(tài)
2012:ALTER DATABASE @databasename SET SINGLE_USER WITH ROLLBACK IMMEDIATE; --把數(shù)據(jù)設為單用戶模式
sql server 2012 r2代碼:
alter database test set emergency --將數(shù)據(jù)庫設置為緊急狀態(tài) alter database test set emergency --將數(shù)據(jù)庫設置為緊急狀態(tài) use master ALTER DATABASE test SET SINGLE_USER WITH ROLLBACK IMMEDIATE go --將目標數(shù)據(jù)庫置為單用戶狀態(tài) dbcc checkdb(test,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(test,REPAIR_REBUILD) go ALTER DATABASE test SET MULTI_USER --將目標數(shù)據(jù)庫置為多用戶狀態(tài)
三. sqlserver 2012 r2 測試這個方法有效
CREATE DATABASE 新數(shù)據(jù)庫名稱 ON ( FILENAME ='E:\asp.net電子商務編程(C#)2005\Database\MDF File\LittleItalyVineyard.mdf' ) for ATTACH_REBUILD_LOG
廣告:
相關文章