1、先新建一个同名数据库,然后停止sql服务,删除新建数据库ldf文件。
2、将要附加的数据库的mdf文件覆盖刚新建的mdf文件,并重启服务。
这时数据库DATA目录下只有一个mdf文件,启动sql server Management studio --新建查询
use masterGo
alter database db_name set emergency
go
--置数据库为单用户模式
alter database db_name set single_user with rollback immediate
go
--重建数据库日志文件
alter database db_name Rebuild Log on (name=log_name,filename='C:\log_nameldf')
go
--最后设置数据库为多用户模式。
alter database dbname set multi_user
打开sqlserver management studio,登录身份选择windows身份验证,点击连接
进入管理器中,选择数据库,右键,在d出的菜单选择“附加”,如图所示,选择要附加的文件后,点击附加,如果没有报错,则完成附加,否则,需要接下来的数据修复。
报错,附加失败后,请新建数据库,且要与要附加的数据库同名。如要附加的数据库为skhprint,要新建的数据库名也要命名为skhprint,如图,点击确定,完成数据库创建
停止数据库
将原mdf文件,如skhprintmdf复制到新创建的数据库所在目录中,之后,开启服务器
这是,会发现skhprint质疑,接下来要打开查询分析器,输入如下代码:
use master
--declare @databaseName varchar(50)
--set @databaseName='skhprint'
--1修改服务器设置:允许对系统目录进行直接修改
sp_configure 'allow updates',1 reconfigure with override
--2将数据库置为紧急状态
update masterdbosysdatabases set status = 32768 where name = 'skhprint'
--3删除新的ldf文件,重建日志:
dbcc rebuild_log('skhprint', 'f:\skhprint_log_newldf')--假设把新日志在f盘
update masterdbosysdatabases set status = 16 where name = 'skhprint'
--4修改服务器设置:取消 允许对系统目录进行直接修改
sp_configure 'allow updates', 0 reconfigure with override
--再使用检查工具修复错误 dbcc
--5设置为单用户模式
alter database skhprint set single_user with rollback immediate
--6 修复数据库
dbcc checkdb ('skhprint',REPAIR_ALLOW_DATA_LOSS)
--7 设置为多用户模式
alter database skhprint set multi_user
--执行完毕之后,如果还有错误,重复执行6,直到没有错误为止。
--根据提示 *** 作
--如果没有其他问题,则修复成功!
讲哪一种方法能够正常恢复都是片面的,这种情况下,你应该在保存好备份文件的前题下,多试几种方法。
比如用企业管理器附加,在查询分析器中通过T-SQL语句附加,建同名空库后复盖数据文件等。
这里价绍了几种方法,您看一下吧:
>
以上就是关于只有.MDF文件 怎么样附加数据库全部的内容,包括:只有.MDF文件 怎么样附加数据库、sqlserver出现数据库不能附加怎么回事、附加数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)