临时表列上的唯一值是否创建索引?

时间:2010-03-23 13:30:56

标签: sql sql-server-2005

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

这会在该列上创建索引吗?或者我是否必须明确创建索引?

2 个答案:

答案 0 :(得分:5)

是的,SQL服务器将自动为每个额外的唯一约束创建一个索引。

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

“数据库引擎自动创建UNIQUE索引以强制执行UNIQUE约束的唯一性要求。除非明确指定聚簇索引,否则默认情况下会创建唯一的非聚簇索引以强制执行UNIQUE约束。”< / p>

对于临时表,我刚刚通过测试验证了这一点。

答案 1 :(得分:3)

是的,确实如此 - 请参阅此article here

  

UNIQUE Con​​straints vs. UNIQUE Indexes
  许多数据库管理员询问   UNIQUE之间的区别   约束和UNIQUE索引。而   您可以使用不同的Transact-SQL   用于创建它们的命令(ALTER   表...约束的ADD CONSTRAINT   和索引的CREATE UNIQUE INDEX),   它们具有相同的效果   大部分。 实际上,当你创建一个   UNIQUE约束,它实际上创建   桌子上有一个独特的索引。