执行dbcc checkdb('test')后主要有以下几种报错:服务器: 消息 8909,级别 16,状态 1,行 1
表错误: 对象 ID 0,索引 ID 0,页 ID (1:6878)。页首结构中的 PageId = (0:0)。对象 'GoodsCostReport' 有 3049 行,这些行位于 25 页中。
CHECKDB 发现了 0 个分配错误和 5 个一致性错误(在表 'GoodsCostReport' 中,该表的对象 ID 为 946779126)。服务器: 消息 8951,级别 16,状态 1,行 1
表错误: 表 'RPT_DailyVDS'(ID 1384352692)。索引 'i2_RPT_DailyVDS'(ID 3)中下列行的键缺少或无效:

解决方案 »

  1.   

    使用dbcc checkdb 的REPAIR_ALLOW_DATA_LOSS参数。先备份一下数据库,因为用这个参数虽然能修复数据库,但可能丢失数据。
      

  2.   

    运行DBCC CHECKDB('test' ,REPAIR_ALLOW_DATA_LOSS )报错:
    未能在数据库   'test'   中运行   BEGIN   TRANSACTION,因为该数据库处于回避恢复模式
      

  3.   

    TRY:
    建一个新的数据库,再通过DTS将数据导进去,注意把“扩展属性”勾中
      

  4.   

    我报错时用的脚本是:
    USE MASTER
    GOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
    GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='test'
    Gosp_dboption 'test', 'single user', 'true'
    GoDBCC CHECKDB('test' ,REPAIR_ALLOW_DATA_LOSS )
    Go后来我重新删除数据库再操作了一遍,在步骤8后做以下操作:
    9. 设置数据库为正常状态
    sp_dboption 'test','dbo use only','false'之后运行以下脚本:
    use master
    goALTER DATABASE database_name SET SINGLE_USER--以单用户模式进入系统
    DBCC CHECKDB ('database_name' ,
    REPAIR_ALLOW_DATA_LOSS )                    --数据可能有丢失 ,做前先备份,另外,如果有备份,先检查备份数据库看结果如何
    ALTER DATABASE DBNAME SET MULTI_USER        --修复完毕后再恢复多用户模式这次执行成功,数据库恢复了!!