在列上创建唯一约束是否会自动创建索引?

39

考虑以下这个唯一性约束:

ALTER TABLE Posts
ADD CONSTRAINT UQ_Posts_Name
UNIQUE (Name);

它会自动在 Name 列上创建索引吗?

4个回答

35

是的,它确实可以。请参考此链接


值得一提的是,它是一个非聚集索引(如链接中所解释的)。 - OfirD

4

是的,只需补充一点..自动创建主键会创建聚集索引。

编辑: 我错了...在Lieven的评论之后:

当您创建PRIMARY KEY约束时,如果表上不存在聚集索引并且您没有指定唯一的非聚集索引,则会自动在列上创建唯一的聚集索引。主键列不能允许NULL值。


3
创建主键不会自动创建聚集索引。 - Lieven Keersmaekers
你是正确的 - 当你创建一个主键约束时,如果表上不存在聚集索引并且你没有指定唯一非聚集索引,则会自动在列或列上创建唯一的聚集索引。主键列不能允许空值。 - Svetlozar Angelov
我不会说你是“错”的,只是答案应该更加细致。也许可以将“automatically”这个词替换为“by default”,就像这个答案中所示。 - OfirD

2

1

是的,绝对没错。唯一约束会创建一个唯一索引。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接