【发布时间】:2013-03-21 19:25:15
【问题描述】:
在 SQL Server 中,我有一个 不可为空的列,上面有一个唯一聚集索引。 如果我将此列设为主键,则会自动创建完全相同的索引加上 该列被识别为主键。
我理解抽象/语义的区别。
(主键标识实体,而具有此索引的任何其他列可能不会。
例如,Person 可以具有唯一的、不可为空的电子邮件字段...但可以更改)
但困扰我的是数据库引擎本身的实际差异。
如果我只创建一个 Id 列,使其不可为空,为它创建一个唯一的聚集索引,使其标识增量,但没有主键约束,会发生什么?
主键约束在什么情况下发挥作用?
(在提出这个问题之前,我已经查看了许多相关问题,但我看到的所有答案都以抽象/理论解释结束)。
【问题讨论】:
标签: sql-server sql-server-2008 indexing unique-constraint clustered-index