sqlserver数据库附加失败的解决办法
对于一般的sqlserver数据库附加失败,可以采用如下办法解决,先新建立一个同名的数据库,如skhprint,然后停止sqlserver服务,最后将原skhprint.mdf复制到新建数据库所在目录,开启数据库服务。在管理器中,会发现此数据库质疑。接下来请看详细内容。
操作方法
- 01
打开sqlserver management studio,登录身份选择windows身份验证,点击连接
- 02
进入管理器中,选择数据库,右键,在弹出的菜单选择“附加”,如图所示,选择要附加的文件后,点击附加,如果没有报错,则完成附加,否则,需要接下来的数据修复。
- 03
报错,附加失败后,请新建数据库,且要与要附加的数据库同名。如要附加的数据库为skhprint,要新建的数据库名也要命名为skhprint,如图,点击确定,完成数据库创建
- 04
停止数据库
- 05
将原mdf文件,如skhprint.mdf复制到新创建的数据库所在目录中,之后,开启服务器
- 06
这是,会发现skhprint质疑,接下来要打开查询分析器,输入如下代码: use master go --declare @databaseName varchar(50) --set @databaseName='skhprint' --1修改服务器设置:允许对系统目录进行直接修改 sp_configure 'allow updates',1 reconfigure with override go --2将数据库置为紧急状态 update master.dbo.sysdatabases set status = 32768 where name = 'skhprint' go --3删除新的ldf文件,重建日志: dbcc rebuild_log('skhprint', 'f:\skhprint_log_new.ldf')--假设把新日志在f盘 go update master.dbo.sysdatabases set status = 16 where name = 'skhprint' go --4修改服务器设置:取消 允许对系统目录进行直接修改 sp_configure 'allow updates', 0 reconfigure with override go --再使用检查工具修复错误 dbcc --5设置为单用户模式 alter database skhprint set single_user with rollback immediate go --6 修复数据库 dbcc checkdb ('skhprint',REPAIR_ALLOW_DATA_LOSS) go --7 设置为多用户模式 alter database skhprint set multi_user go --执行完毕之后,如果还有错误,重复执行6,直到没有错误为止。 --根据提示操作 --如果没有其他问题,则修复成功!