sql建立数据库 SQLServer置疑数据库解决方法
SQLServer置疑数据库解决方法
首先确认已经备份了 mdf和 ldf文件
在SQL Server中新建一个同名的数据库 然后停止SQL Server服务
用原有的 mdf和 ldf文件覆蓋新建数据库对应的 mdf和 ldf文件
重新启动SQL Server服务 这是应该会看到这个数据库处于置疑(Suspect)状态
在SQL查询分析器中执行以下命令 以允许更新系统表
use mastergosp_configure allow updates reconfigure with overridego

将这个数据库置为紧急模式
update sysdatabases set status = where name = db_name go
使用DBCC CHECKDB命令检查数据库中的错误
DBCC CHECKDB( db_name )GO
如果DBCC CHECKDB命令失败 请转至第 步 否则先将数据库置为单用户模式 再尝试对其进行修复
sp_dboption db_name single user true DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)GO
如果在执行DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话 则重新启动SQL Server服务 然后继续尝试
如果DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)命令失败 请转至第 步 否则若成功修复了数据库中的错误
重新执行DBCC CHECKDB( db_name )命令 确认数据库中已没有错误存在
清除数据库的置疑状态 sp_resetstatus db_name
清除数据库的单用户模式状态 sp_dboption db_name single user false
重新启动SQL Server服务 如果一切正常的话 则数据库已经成功恢复
如果以上步骤都不能解决问题的话 请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据 如果您只有MDF文件 问题就更加复杂一些 我们需要直接重建事务日志了:
在SQL Server中新建一个同名的数据库 然后停止SQL Server服务
用原有的ldf文件覆蓋新建数据库对应的 mdf文件 将其日志文件( ldf)删除
启动SQL Server服务 并将数据库置为紧急模式(同上: 步骤 和步骤 )
停止并重新启动SQL Server服务
执行以下命令重建数据库日志文件 (下面是个示例 您要用您实际的数据库名)
DBCC REBUILD_LOG( cas_db D:cas_dbcas_db_Log LDF )
重新将该数据库置为单用户模式
lishixinzhi/Article/program/SQLServer/201311/22174