表格dtr_shch_m1的总记录数:108546,
select * FROM Dtr_shch_m1 查询时,显示到70600行时,提出示如下错误:
----------------------------------------------------------------
服务器: 消息 3624,级别 20,状态 1,行 1
 
Location:  q:\SPHINX\NTDBMS\storeng\drs\include\record.inl:1447
Expression:  m_SizeRec > 0 && m_SizeRec <= MAXDATAROW
SPID:  53
Process ID:  380连接中断
----------------------------------------------------------------
update Dtr_shch_m1 set gx_int_q=0
提示如下错误:服务器: 消息 644,级别 21,状态 3,行 1
未能在索引页 (1:108461) 中找到 RID '1644423130303737333534100' 的索引条目(索引 ID 0,数据库 'lt_erp')。连接中断------------------------------------------------------------------------------------
两个星期以前,表格dtr_shch_m1的总记录数:96546,
可以全部查询,不会提示错误。
请问,如何解决?

解决方案 »

  1.   

    DBCC CHECKTABLE('TABLENAME')再说
      

  2.   

    如果问题依旧 运行 DBCC DBREINDEX(TABLENAME)
      

  3.   

    先运行:
    DBCC CHECKTABLE('dtr_shch_m1')返回结果如下:服务器: 消息 8909,级别 16,状态 1,行 1
    表错误: 对象 ID -147884731,索引 ID 2712,页 ID (1:108462)。页首结构中的 PageId = (17396:695038320)。
    服务器: 消息 8928,级别 16,状态 1,行 1
    对象 ID 2094630505,索引 ID 0: 未能处理页 (1:108461)。详细信息请参阅其它错误。
    服务器: 消息 8944,级别 16,状态 1,行 1
    表错误: 对象 ID 2094630505,索引 ID 0,页 (1:108461),行 3。测试(offsetNull >= BASEOFFSET)失败。值为 0 和 4。
    服务器: 消息 8928,级别 16,状态 1,行 1
    对象 ID 2094630505,索引 ID 0: 未能处理页 (1:108462)。详细信息请参阅其它错误。
    CHECKTABLE 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -147884731)' 中,该表的对象 ID 为 -147884731)。
    'Dtr_shch_m1' 的 DBCC 结果。
    对象 'Dtr_shch_m1' 有 108538 行,这些行位于 10021 页中。
    CHECKTABLE 发现了 0 个分配错误和 3 个一致性错误(在表 'Dtr_shch_m1' 中,该表的对象 ID 为 2094630505)。
    repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKTABLE (lt_erp.dbo.Dtr_shch_m1 ) 发现的错误而言)。再运行:
    select * from dtr_shch_m1返回70600笔记录后,就报错:服务器: 消息 3624,级别 20,状态 1,行 1
     
    Location:  p:\sql\ntdbms\storeng\drs\include\record.inl:1447
    Expression:  m_SizeRec > 0 && m_SizeRec <= MAXDATAROW
    SPID:  57
    Process ID:  740连接中断
    这个表的总记录数是:108546。-------------------------------------怎么办呀?
    急死人了,现在所有人都用不了程序了。555...
      

  4.   

    CHECKTABLE 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -147884731)' 中,该表的对象 ID 为 -147884731)表的数据有损坏(物理页面上一致性错误) 错误提示的很清楚 至少的修复级别是repair_allow_data_loss可以接受数据损失吗?
      

  5.   

    运行DBCC CHECKTABLE('dtr_shch_m1',REPAIR_ALLOW_DATA_LOSS )应该可以使表再次使用
      

  6.   

    运行 DBCC CHECKTABLE('dtr_shch_m1',0) 可以检查ID为0的索引
      

  7.   

    DBCC CHECKTABLE('dtr_shch_m1',REPAIR_ALLOW_DATA_LOSS )服务器: 消息 7919,级别 16,状态 3,行 1
    未处理修复语句。数据库需要处于单用户模式下。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。请问:
    如何进入单用户模式?
    不懂的太多了? 555....
      

  8.   

    Sorry!这样就好了alter database lt_erp set single_user with rollback immediate
    go
    dbcc checktable('dtr_shch_m1',repair_allow_data_loss)
    go
      

  9.   

    alter database lt_erp set single_user with rollback immediate
    go
    dbcc checktable('dtr_shch_m1',repair_allow_data_loss)
    go
    结果如下:
    服务器: 消息 8909,级别 16,状态 1,行 1
    表错误: 对象 ID -147884731,索引 ID 2712,页 ID (1:108462)。页首结构中的 PageId = (17396:695038320)。
    服务器: 消息 8928,级别 16,状态 1,行 1
    对象 ID 2094630505,索引 ID 0: 未能处理页 (1:108461)。详细信息请参阅其它错误。
    服务器: 消息 8944,级别 16,状态 1,行 1
    表错误: 对象 ID 2094630505,索引 ID 0,页 (1:108461),行 3。测试(offsetNull >= BASEOFFSET)失败。值为 0 和 4。
    服务器: 消息 8928,级别 16,状态 1,行 1
    对象 ID 2094630505,索引 ID 0: 未能处理页 (1:108462)。详细信息请参阅其它错误。
    服务器: 消息 8978,级别 16,状态 1,行 1
    表错误: 对象 ID 2094630505,索引 ID 1。页 (1:90348) 缺少上一页 (1:108462) 对它的引用。可能是因为链的链接有问题。
    服务器: 消息 8976,级别 16,状态 1,行 1
    表错误: 对象 ID 2094630505,索引 ID 1。在扫描操作中未发现页 (1:108461),而其父代 (1:147480) 和上一页 (1:147567) 指向了该页。请检查先前的错误。
    服务器: 消息 8980,级别 16,状态 1,行 1
    表错误: 对象 ID 2094630505,索引 ID 1。索引节点页 (1:147480),槽 144 指向子页 (1:108462) 和上一子页 (1:108461),但未遇到这些页。
            该错误已修复。
    CHECKTABLE 发现了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -147884731)' 中,该表的对象 ID 为 -147884731)。
    CHECKTABLE 修复了 0 个分配错误和 1 个一致性错误(在表 '(Object ID -147884731)' 中,该表的对象 ID 为 -147884731)。
    'Dtr_shch_m1' 的 DBCC 结果。
            该错误已修复。
            该错误已修复。
            该错误已修复。
            该错误已修复。
            该错误已修复。
            该错误已修复。
    修复: 页 (1:108461) 已从对象 ID 2094630505,索引 ID 0 处释放。
    修复: 页 (1:108462) 已从对象 ID 2094630505,索引 ID 0 处释放。
    成功地还原了数据库 'lt_erp' 中对象 'dbo.Dtr_shch_m1' 的 Clustered 索引。
    对象 'Dtr_shch_m1' 有 108538 行,这些行位于 10021 页中。
    CHECKTABLE 发现了 0 个分配错误和 6 个一致性错误(在表 'Dtr_shch_m1' 中,该表的对象 ID 为 2094630505)。
    CHECKTABLE 修复了 0 个分配错误和 6 个一致性错误(在表 'Dtr_shch_m1' 中,该表的对象 ID 为 2094630505)。
      

  10.   

    再次运行:
    DBCC CHECKTABLE('dtr_shch_m1')
    结果如下:
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:217)(其值为 id_shch_b = 'DA10014830' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077354')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:218)(其值为 id_shch_b = 'DA10014830' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077355')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:219)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077356')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:220)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077357')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:221)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077358')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:222)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077359')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:223)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077360')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1'(ID 2094630505)(索引 ID 2)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:90033:224)(其值为 id_shch_b = 'DA10014831' and gx_int = 1.039796435E-042 and id_shch_m1 = 'DB10077361')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:31295:286)(其值为 gongxh = 'A0' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077358')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:34758:217)(其值为 gongxh = 'B0' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077359')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:86778:174)(其值为 gongxh = '20' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077357')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:89321:149)(其值为 gongxh = 'V0' and id_shch_b = 'DA10014830' and id_shch_m1 = 'DB10077354')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:89322:109)(其值为 gongxh = 'G0' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077360')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:89325:86)(其值为 gongxh = 'P0' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077361')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:89326:83)(其值为 gongxh = '10' and id_shch_b = 'DA10014831' and id_shch_m1 = 'DB10077356')指向由  标识的数据行。
    服务器: 消息 8952,级别 16,状态 1,行 1
    表错误: 数据库 'lt_erp',索引 'Dtr_shch_m1.IX_Dtr_shch_m1_1'(ID 2094630505)(索引 ID 3)。下列键的键多余或无效:
    服务器: 消息 8956,级别 16,状态 1,行 1
    索引行(1:89327:70)(其值为 gongxh = 'ZZ' and id_shch_b = 'DA10014830' and id_shch_m1 = 'DB10077355')指向由  标识的数据行。
    'Dtr_shch_m1' 的 DBCC 结果。
    对象 'Dtr_shch_m1' 有 108538 行,这些行位于 5169 页中。
    CHECKTABLE 发现了 0 个分配错误和 16 个一致性错误(在表 'Dtr_shch_m1' 中,该表的对象 ID 为 2094630505)。
    repair_fast 是最低的修复级别(对于由 DBCC CHECKTABLE (lt_erp.dbo.Dtr_shch_m1 ) 发现的错误而言)。
      

  11.   

    似乎接下来的报错都是索引的 运行 DBCC DBREINDEX('dtr_shch_m1')
      

  12.   

    运行:
    DBCC DBREINDEX('dtr_shch_m1')结果如下:
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。再运行:
    DBCC CHECKTABLE('dtr_shch_m1')结果如下:
    'Dtr_shch_m1' 的 DBCC 结果。
    对象 'Dtr_shch_m1' 有 108538 行,这些行位于 5169 页中。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。现在Dtr_shch_m1表是不是完全可以用了?
      

  13.   

    TO: rouqu(石林#黄果树)  非常感谢你的邦助,麻烦你再点一下下面的贴子,我把下面的分值也算给你。http://community.csdn.net/Expert/topic/4805/4805716.xml?temp=.8297541非常感谢!非常感谢!
      

  14.   

    你的SELECT、UPDATE语句正常了吗?