故障原因:系统在转移历史数据时(在同一个数据库中由表A转移到表B),电脑处于假死机状态。本人强行重新启动电脑。导致数据库无法正常使用。数据库日志文件无法识别,通过网上办法重新建立日志。虽然通过企业管理器可以访问数据库了,但是数据库的表A无法正常查询,查询就报错,错误如下服务器: 消息 8908,级别 22,状态 6,行 1
表错误: 数据库 ID 7,对象 ID 1191675293,索引 ID 0。链的链接不匹配。(1:1081812)->next = (1:1219972),但 (1:1219972)->prev = (1:70959)。连接中断
请问这里如何处理这里的错误。谢谢!

解决方案 »

  1.   

    --TRY 具體參數查下聯機幫助
    DBCC   CHECKTABLE 
      

  2.   

    表错误: 对象 ID 1191675293,索引 ID 1。页 (1:21484) 缺少父代(未知)和上一节点(页 (1:930651))对它的引用。可能是因为 sysindexes 中的根条目有错误。
    服务器: 消息 8936,级别 16,状态 1,行 1
    表错误: 对象 ID 1191675293,索引 ID 1。B 树链的链接不匹配。(1:963583)->next = (1:21485),但 (1:21485)->Prev = (1:1066568)。
    服务器: 消息 8977,级别 16,状态 1,行 1
    表错误: 对象 ID 1191675293,索引 ID 1。未遇到页 (1:21485) 的父节点。
    服务器: 消息 8979,级别 16,状态 1,行 1
    表错误: 对象 ID 1191675293,索引 ID 1。页 (1:21803) 缺少父代(未知)和上一节点(页 (1:977750))对它的引用。可能是因为 sysindexes 中的根条目有错误。
    服务器: 消息 8986,级别 16,状态 1,行 1
    发现的错误数目(201)太多(属于对象 ID 1191675293)。若要查看所有的错误信息,请用 'WITH ALL_ERRORMSGS' 重新运行该语句。
    对象 A 有 2000220 行,这些行位于 179413 页中。
    CHECKTABLE 发现了 0 个分配错误和 33554 个一致性错误(在表 A 中,该表的对象 ID 为 1191675293)。
    repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKTABLE A 发现的错误而言)。
    以上是其中一部分错误提示!还是不知道怎么解决问题!谢谢了!
      

  3.   

    USE   MASTER  
      GO  
       
      sp_dboption   '你的数据库名',   'single   user',   'true'  
      Go  
       
      DBCC   CHECKDB('你的数据库名',   REPAIR_ALLOW_DATA_LOSS)    
      Go  
       
      USE   你的数据库名  
      go  
       
      exec   sp_msforeachtable   'DBCC   CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'  
      exec   sp_msforeachtable   'DBCC   DBREINDEX(''?'')'  
      go  
       
      sp_dboption   '你的数据库名',   'single   user',   'false'  
      Go
      

  4.   

    --try
    use master
    GO
    sp_dboption 'dbname','single user','true'                 
    DBCC CHECKDB('dbname',REPAIR_ALLOW_DATA_LOSS)
    sp_dboption 'dbname','single user','false'
      

  5.   


    use master
    go
    alter database 库名 set single_user
    dbcc checktable('表名',repair_allow_data_loss)
    alter database 库名 set multi_user