sql2005-sqlserver 2012附加单个mdf数据文件(还原mdf文件),没有日志文件
发布时间:2010/11/10 11:11:16 作者: 阅读:1098
广告:
sql2005附加单个mdf数据文件,没有日志文件
一.删除ldf文件附加
二.命令方法
我把原来的数据库分离后,直接把日志文件给干掉了。原来在SQL 2000里经常这么干,只用一个mdf就附加了。没想到sql2005居然不行。我试验了一圈 终于找到一个成功的方法。转载,供后来者参考。
SQL2005 如何在没有日志文件的情况下如何恢复MDF数据库文件
第一步:先建立一个同名数据库,停止SQL SERVER2005,将没有日志的的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。
第三步:在查询分析器中运行如下代码:
alter database LittleItalyVineyard set emergency --将数据库设置为紧急状态 use master declare @databasename varchar(255) set @databasename='LittleItalyVineyard' --你的.mdf文件文件名 exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态 dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' --将目标数据库置为多用户状态
执行出现“数据库其他多个文件与数据库主文件不匹配….”错误,再执行一次即可。
上面代码sql server 2012 r2会提示:找不到存储过程 sp_dboption
2005:exec sp_dboption @databasename, N’single‘, N’true’ —将目标数据库置为单用户状态
2012:ALTER DATABASE @databasename SET SINGLE_USER WITH ROLLBACK IMMEDIATE; --把数据设为单用户模式
sql server 2012 r2代码:
alter database test set emergency --将数据库设置为紧急状态 alter database test set emergency --将数据库设置为紧急状态 use master ALTER DATABASE test SET SINGLE_USER WITH ROLLBACK IMMEDIATE go --将目标数据库置为单用户状态 dbcc checkdb(test,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(test,REPAIR_REBUILD) go ALTER DATABASE test SET MULTI_USER --将目标数据库置为多用户状态
三. sqlserver 2012 r2 测试这个方法有效
CREATE DATABASE 新数据库名称 ON ( FILENAME ='E:\asp.net电子商务编程(C#)2005\Database\MDF File\LittleItalyVineyard.mdf' ) for ATTACH_REBUILD_LOG
广告:
相关文章