先调用DBCC CHECKDB 看看

解决方案 »

  1.   

    附加数据库,选好MDF文件后出现  错误:823 请问是不是MDF文件有问题??
      

  2.   

    用新建数据库。复制MDF的方法
    打开表还是出现 823 错误,
    运行 DBCC CHECKDB 出现
    服务器: 消息 8966,级别 16,状态 1,行 1
    未能读取并闩锁页 (1:137)(用闩锁类型 SH)。sysindexes 失败。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。请问如何解决啊??急急急!!!!!
      

  3.   

    --try
    sp_attach_db 'newdb','path\filename'
    如果还是同样错误,说明此文件损坏了.
      

  4.   

    采用下面的方法:
    方案1:调用DBCC CHECKDB(‘db_name’,repair_rebuild)修复方案2:若方案1失败,采用下面的方法试一试:
    首先,在企业管理器中新建一数据库(如数据库名为test),建好数据库后,停止SQL Server Service Manager,并将客户数据库的MDF文件更名为test _data.mdf(即新建数据库的主文件名),然后用更名后的文件覆盖新建数据库同名文件,接着,启动企业管理器。对Master数据库将系统表设置为可更改状态 
    Use Master 
    Go 
    sp_configure 'allow updates', 1 
    reconfigure with override 
    Go 
    将数据库设为紧急状态: 
    update sysdatabases set status = 32768 where name = ' database ' 
    停止并重新启动SQL Server Service Manager,并重建Log文件: 
    DBCC TRACEON (3604) 
    DBCC REBUILD_LOG(' test ','test _log_ldf') 
    将数据库设置为单用户模式,然后进行检测: 
    sp_dboption ' test ', 'single user', 'true' 
    DBCC CHECKDB(' test ') 
    Go 
    此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作: 
    DBCC DBREINDEX(表名) 方案3:若无法修复,则只能重备份中进行恢复.
      

  5.   

    wudan8057(十年)  用你的第2个方法试了,
    执行DBCC TRACEON (3604) 
    DBCC REBUILD_LOG(' test ','test _log_ldf') 说是设备激活错误。物理文件名 '_log_ldf' 可能有误。sp_dboption ' test ', 'single user', 'true' 
    DBCC CHECKDB(' test ') 
    说是  未能读取并闩锁页 (1:137)(用闩锁类型 SH)。sysindexes 失败。