为什么Microsoft在SQL Server 2008中的表上创建了2个不同的选项来创建唯一索引?
管理索引/密钥:
1)type = Unique Key ==> IsUnique = Yes(禁用IsUnique) 2)type = Index ==> IsUnique =是
谢谢
答案 0 :(得分:5)
它们映射到两个不同的SQL
命令:
ALTER TABLE … ADD CONSTRAINT … UNIQUE
和
CREATE UNIQUE INDEX … ON …
CONSTRAINT UNIQUE
是一个逻辑概念,而UNIQUE INDEX
是其物理实现。
在SQL Server
中,CONSTRAINT UNIQUE
始终由唯一索引备份,该索引使用与约束相同的名称隐式创建,因此这些命令实际上是相同的。
与用户观点的唯一区别是约束可以隐式命名,但是你应该总是为索引提供一个显式名称。
答案 1 :(得分:0)
这是Google发现的(对于SQL Server 2000):
简短的回答是一个独特的 index只是一个索引,而a 唯一约束是唯一索引 它被列为约束对象 在数据库中。在sysobjects中 表,唯一约束将有 “UQ”的xtype值。但确实如此 唯一约束有任何附加 唯一索引没有的行为 有 - 反之亦然?答案就是这样 问题,事实证明,需要大量的 挖。
...