我有一个我正在使用的临时表,我有一个唯一的列,例如:myID INT UNIQUE
这会在该列上创建索引吗?或者我是否必须明确创建索引?
答案 0 :(得分:5)
是的,SQL服务器将自动为每个额外的唯一约束创建一个索引。
http://msdn.microsoft.com/en-us/library/ms177420.aspx
“数据库引擎自动创建UNIQUE索引以强制执行UNIQUE约束的唯一性要求。除非明确指定聚簇索引,否则默认情况下会创建唯一的非聚簇索引以强制执行UNIQUE约束。”< / p>
对于临时表,我刚刚通过测试验证了这一点。
答案 1 :(得分:3)
是的,确实如此 - 请参阅此article here:
UNIQUE Constraints vs. UNIQUE Indexes
许多数据库管理员询问 UNIQUE之间的区别 约束和UNIQUE索引。而 您可以使用不同的Transact-SQL 用于创建它们的命令(ALTER 表...约束的ADD CONSTRAINT 和索引的CREATE UNIQUE INDEX), 它们具有相同的效果 大部分。 实际上,当你创建一个 UNIQUE约束,它实际上创建 桌子上有一个独特的索引。