SQL Server 2000不正确的消息:具有唯一索引的重复键

时间:2010-03-11 14:10:16

标签: sql-server

数据库服务器:SQL Server 2000 - 8.00.760 - SP3 - 标准版

我有一个包含5列的表,其中我想添加一个大(300.000)个记录。两列的组合有一个唯一的索引。如果我添加具有此唯一索引的记录,SQL Server会给出以下错误消息:

  

Msg 2601,Level 14,State 3,Line 1   无法使用唯一索引'test'在对象'TESTTABLE'中插入重复的键行。   声明已经终止。

     

(0行(s)受影响)

但是,如果我删除唯一索引然后添加记录,那么我在之后创建此唯一索引时不会出现任何错误。

3 个答案:

答案 0 :(得分:0)

检查哪些字段构成您的唯一索引。

您的源数据中存在重复导致INSERT失败的那些字段。

您采取的措施取决于数据的性质。如果它只是一行比其他行更新,使原来过时,那么你可以摆脱。否则,请与您的商务人士联系: -

  • 您应该如何使用重复数据
  • 是否有独特的约束 列是必要的

有些问题可以轻松解决。对于这个,大多数解决方案实际上都是非技术性的。

答案 1 :(得分:0)

您的一个假设必定是错误的。重新访问他们。索引的性质,进入的数据,预先存在的数据(如果有),排序规则(不区分大小写/区分大小写)。

答案 2 :(得分:0)

ALTER TABLE

中使用WITH NOCHECK的唯一约束(不是索引)