1

我正在使用 SQL Server 2008,有一个以 id(数字)列作为主键的表。在三个 varchar 列上也有一个唯一索引。我能够添加具有完全相同的三列集合的行。我通过对值的简单查询进行了验证,并返回了 2 行。

我编辑了索引并添加了 id 列。当我尝试再次编辑它并删除它抱怨有重复行的 id 列时,它删除了索引但无法创建它。

然后我清理重复的数据库,使用与唯一和非聚集相同的 3 个 varchars 重新创建索引,现在它可以正常工作,不允许重复。

有谁知道为什么这个索引的唯一性被忽略了?

4

2 回答 2

5

索引可能已被禁用(请参阅禁用索引),您的“重复”值可能不同(例如尾随空格),或者您的测试可能不正确。

确保您没有在强制唯一索引中插入重复项。

于 2009-12-28T22:10:32.967 回答
0

我不是这个主题的专家,但索引的“唯一”设置可能是指索引的构建/存储方式,而不是限制。这可能也意味着索引的性能是次优的。创建索引时,DBMS 可能会检查这一点。

于 2013-03-18T10:47:28.023 回答