估计索引或者部分数据有点问题,运行
DBCC CHECKDB 检查一下,若有错,则执行USE masterexec sp_dboption 'dbname', 'single user', 'true'
go
dbcc checkdb ('dbname', REPAIR_REBUILD)
go
当修改完以后执行
EXEC sp_dboption 'dbname', 'single user', 'false'

解决方案 »

  1.   

    回suntt(两条腿的狗) :DBCC CHECKDB 检查无错误
                          把下面的也执行了结果照旧回dichun(融雪) :随便改什么,加个空格!
      

  2.   

    给点一般信息吧,没法具体
    错误 644
    严重级别 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 的输出可查阅。