用友软件从上年结转并建立新数据库,在传送基础数据(invoiceitem_sal这张表)时出现错误,用DBCC checkdb() 出现以下两错误:
Msg 2535,level 16,state 1,line 0 
Table corrupt:page(1:2977) is allocated to object ID 1620916846, index ID 3,not to object ID 0 found in page header.Msg 8909,level 16,state 1,line 0  

解决方案 »

  1.   

    使用REPAIR_ALLOW_DATA_LOSS ,先备份哦
      

  2.   

    SELECT OBJECT_NAME(id) FROM sysindexes
    WHERE id  = 1620916846 AND indid = 3把这个索引重建一下,应该就OK了!
    Good luck!
      

  3.   

    http://topic.csdn.net/t/20040418/14/2979654.html
      

  4.   

    --如果有问题,用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)   
        
      USE   MASTER   
      GO   
        
      sp_dboption   '你的数据库名',   'single   user',   'true'   
      Go   
        
      DBCC   CHECKDB('你的数据库名',   REPAIR_REBUILD)     
      Go   
        
      USE   你的数据库名   
      go   
        
      exec   sp_msforeachtable   'DBCC   CHECKTABLE(''?'',REPAIR_REBUILD)'   
      exec   sp_msforeachtable   'DBCC   DBREINDEX(''?'')'   
      go   
        
      sp_dboption   '你的数据库名',   'single   user',   'false'   
      Go