ALTER DATABASE 数据库名SET SINGLE_USER
GO
DBCC CHECKDB('数据库名',REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE 数据库名 SET MULTI_USER
GO
用这个修复数据库的时候提示服务器: 消息 1505,级别 16,状态 1,行 1
CREATE UNIQUE INDEX 终止,因为发现了索引 ID 2 的重复键。最重要的主键为 'type 6c, len 9'。
服务器: 消息 8980,级别 16,状态 1,行 1
表错误: 对象 ID 1432548337,索引 ID 2。索引节点页 (1:976),槽 2 指向子页 (1:2311) 和上一子页 (1:2307),但未遇到这些页。
想了解一下这两个提示的具体意思。
第一个提示惟一索引上有重复的值。提示了索引ID2 能否根据这个信息去找到是哪个索引。
槽页这些水平还不到暂不研究。
另外这种提示有什么比较好的解决方案吗。
谢谢

解决方案 »

  1.   

    SELECT 
    表名 = OBJECT_NAME(id), 
    索引名 = name 
    FROM sysindexes
    WHERE id = 1432548337 -- 对象 ID 1432548337,
    AND indid = 2 -- 索引 ID 2
      

  2.   

    你能把UNIQUE INDEX删掉么?
      

  3.   

    问题找到了另外问下。在没有删除掉惟一索引的情况下查不到重复的。(select vchcode count(*) from tabelname group by vchcode havint count(*)>1)只有在DTS导入的时候提示有重复的。把惟一索引删除以后就能查出重复的/这个是什么原因呢。查询和索引有什么内在的联系呢。