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

问题描述:

考虑这个唯一约束:在列上创建唯一约束是否自动创建索引?

ALTER TABLE Posts 
ADD CONSTRAINT UQ_Posts_Name 
UNIQUE (Name); 

是否自动上Name列上创建索引?

是的。请参阅this

是的,绝对。唯一约束创建唯一索引。

您也可以在其上创建一个单独的索引。这篇文章http://msdn.microsoft.com/en-us/library/aa224827(SQL.80).aspx描述了很好的差异。

是的,只需添加..创建主键自动创建聚集索引。

编辑: 我错了......利芬的评论后:

当你创建一个主键约束,在列或列的唯一聚集索引自动如果一个聚集索引上创建该表尚不存在,并且您不指定唯一的非聚簇索引。主键列不能允许NULL值。

+2

创建主键不会自动创建聚簇索引。 – 2009-08-10 12:23:24

+0

您是对的 - 当您创建PRIMARY KEY约束时,如果表上的聚簇索引尚不存在,并且您未指定唯一的非聚簇索引,则自动创建该列上的唯一聚簇索引。主键列不能允许NULL值。 – 2009-08-10 12:56:12