删除表行数据时:
   提示:“该数据库存在一致性问题。。,应该对数据库进行DBCC checkDB 和DBCC    CHECKCATALOG”
  可是对数据库"DBCC CHECKDB"时,提示闩锁的错误。后来我把数据库考到别的电脑上,进行删除行操作提示: “其他用户已经修改了表或视图的内容;你所修改的数据库行在数据库中已不存在!”可是,数据表中明明有内容的亚。
   
  删除该表时,提示:“错误644,未能在索引页中找到RID:'.....'的索引条目。”
----楼上的我贴出来了,帮我看看,先谢了。

解决方案 »

  1.   

    严重级别 21
    消息正文
    未能在索引页 %3! 中找到 RID ''%1!'' 的索引条目(索引 ID %4!、数据库 ''%5!'')。解释
    当索引 ID 表示的非聚集索引出错时发生该错误。当进程试图删除不存在的行时检测到该损坏。对策
    执行不带修复子句的 DBCC CHECKDB 以确定损坏的程度。然后,执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 以更正损坏。如果问题仍存在,则除去并重新创建该索引(如下所示),或与您的主要支持提供者联系。重要  如果执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 未更正索引问题,或不确定带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 对数据有何影响,则请与您的主要支持提供者联系。
    除去并重新创建索引: 记录错误文本中指定的索引页和索引 ID 的值。
    确定哪个表和索引对应于该索引页号。
    记下对象 ID。 
    如果有错的对象是系统表(对象 ID 小于 100),则无法除去该索引。执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 或从已知的清洁备份还原数据库。如果对象 ID 大于 100,则使用第 1 步中获得的表名和索引名称除去并重新创建该索引。在大多数情况下,这将清除该错误。
    在受影响的数据库上执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB,以验证已解决所有问题。 
    如果问题仍存在,则该过程可能不足以清除索引错误。在这种情况下,请与您的主要支持提供者联系。使 DBCC CHECKDB 的输出可查阅。
      

  2.   

    --设数据库单用户
    ALTER DATABASE 数据库名 SET SINGLE_USER
    用REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD 三个修复级别修复
    DBCC CHECKTABLE (表名,REPAIR_FAST)
    ---还原数据库多用户
    ALTER DATABASE 数据库名 SET  MULTI_USER
      

  3.   

    用DBCC CheckTable逐个检查是哪些表损坏了。