临时表列上的唯一约束是否会创建索引?

4

我有一个临时表,正在使用并且有一个唯一的列,例如:myID INT UNIQUE

这会在该列上创建索引吗?还是我必须明确地创建索引?

我有一个临时表,正在使用并且有一个唯一的列,例如:myID INT UNIQUE。这是否会在该列上创建索引?或者我需要明确地创建索引?
2个回答

5
是的,SQL Server会自动为每个额外的唯一约束创建一个索引。

http://msdn.microsoft.com/en-us/library/ms177420.aspx

数据库引擎会自动创建唯一索引以强制实施唯一约束。如果没有显式指定聚集索引,则默认创建一个唯一的非聚集索引以强制实施唯一约束。这对于临时表也是适用的,我通过测试验证了这一点。

3
是的,确实如此 - 可以看看这里的文章:Unique Constraints vs. Unique Indexes
许多数据库管理员询问UNIQUE约束和UNIQUE索引之间的区别。虽然您可以使用不同的Transact-SQL命令来创建它们(对于约束是ALTER TABLE…ADD CONSTRAINT,对于索引是CREATE UNIQUE INDEX),但它们在大部分情况下具有相同的效果。实际上,当您创建UNIQUE约束时,它实际上会在表上创建一个UNIQUE索引。

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