SQL Server唯一索引允许重复

时间:2009-12-28 22:06:41

标签: sql-server unique-index

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

当然,您没有在强制唯一索引中插入副本。

答案 1 :(得分:0)

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