其实还有一个更好的sql脚本因为我的没记录而找不到了。

而在SqlServer 2012中sp_dboption存储过程默认不再使用了 但是可以改用alert解决这个问题。

首先要备份好你的mdf文件 以防万一(这句是废话)

然后进入SqlServer新建一个数据库 比如叫 7kb-huifu吧 简单明了。

然后打开SqlServer管理器 停止SqlServer服务

进入7kb-huifu数据库目录 删除7kb-huifu.mdf 把你要恢复的单mdf文件 复制到此目录 命名为 7kb-huifu.mdf

打开SqlServer管理器 启动SqlServer服务

这个时候其实你的数据库依然是打不开的

下面进入Master数据库 新建查询 执行一段sql脚本

 

ALTER DATABASE [7kb-huifu] SET EMERGENCY;
ALTER DATABASE [7kb-huifu] SET SINGLE_USER;
ALTER DATABASE [7kb-huifu] REBUILD LOG ON (NAME=dbname_log, FILENAME='G:kb-huifu_log.ldf');
DBCC CHECKDB([7kb-huifu] , REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE [7kb-huifu] SET MULTI_USER;
ALTER DATABASE [7kb-huifu] SET ONLINE;

 

这个时候右键点击数据库-刷新 你的单mdf就已经恢复好了