【发布时间】:2019-12-03 11:34:27
【问题描述】:
自从Document 指出后,我有一段时间感到困惑:
当您创建 PRIMARY KEY 约束时,唯一的聚集索引 如果聚集索引在 该表尚不存在且您未指定唯一的 非聚集索引。主键列不能允许 NULL 值。
我在 SQL Server 中有一个带有 PRIMARY KEY 约束的表。根据上述观点,由于我没有在表中创建任何聚集,因此会自动在列上创建唯一聚集索引。
我了解到 2601 无法在对象 '%.*ls' 中插入重复的键行,来自 Database Engine Errors 的唯一索引为 '%.*ls'。
我的问题是,当我尝试将主键列中的重复值插入到主键上具有唯一聚集索引的表中时,为什么 SQL 服务器返回错误代码 2627 而不是 2601?是因为 2627 的优先级高于 2601 还是什么?
有人可以给我一些建议或帮助吗?谢谢。
【问题讨论】:
-
我的猜测是因为该对象被标记为主键,在确定错误代码时似乎比唯一索引具有更高的优先级