代码之家  ›  专栏  ›  技术社区  ›  odiseh

为什么Microsoft在SQLServer2005中为表创建唯一索引提供了两种不同的选项?

  •  2
  • odiseh  · 技术社区  · 15 年前

    1)类型=唯一键==>IsUnique=是(IsUnique已禁用) 2)类型=索引==>IsUnique=Yes

    非常感谢。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Quassnoi    15 年前

    它们映射到两个不同的位置 SQL

    ALTER TABLE … ADD CONSTRAINT … UNIQUE
    

    CREATE UNIQUE INDEX … ON …
    

    CONSTRAINT UNIQUE UNIQUE INDEX 是它的物理实现。

    在里面 SQL Server , 约束唯一 总是由一个唯一的索引备份,该索引隐式创建,与约束同名,因此这些命令实际上是相同的。

    从用户的角度来看,唯一的区别是约束可以隐式命名,但您应该始终为索引提供显式名称。

        2
  •  0
  •   scherand    15 年前

    这是Google发现的(但适用于SQL Server 2000):

    简单的回答是,一个独特的 唯一约束是唯一的索引 在数据库中。在sysobjects中 表中,唯一约束将具有 xtype值为“UQ”。但是 唯一约束是否有任何附加约束 还是反之亦然?答案是什么 事实证明,这个问题需要大量的时间 挖。

    ...

    Unique Constraints and Unique Indexes