Microsoft SQL Server中的唯一约束

在主键约束下使用唯一约束的优点

通过创建一个UNIQUE约束,SQL Server管理员指定一个列可能不包含重复的值。 当您创建新的UNIQUE约束时,SQL Server会检查有问题的列以确定它是否包含任何重复值。 如果该包含预先存在的重复项,则约束创建命令将失败。 同样,一旦对列有一个UNIQUE约束,尝试添加或修改会导致重复项存在的数据也会失败。

为什么要使用UNIQUE约束

UNIQUE约束和主键都强制唯一性,但有时候UNIQUE约束是更好的选择。

创建一个唯一的约束

有很多方法可以在SQL Server中创建UNIQUE约束。 如果要使用Transact-SQL在现有表上添加UNIQUE约束,可以使用ALTER TABLE语句,如下所示:

ALTER TABLE ADD CONSTRAINT UNIQUE()

如果您更愿意使用GUI工具与SQL Server交互,则还可以使用SQL Server Management Studio创建UNIQUE约束。 就是这样:

  1. 打开SQL Server Management Studio
  2. 展开要创建约束的数据库的Tables文件夹。
  3. 右键单击要添加约束的表格,然后单击设计
  4. 在表设计器菜单中,单击索引/键
  5. 在索引/键对话框中,单击添加
  6. 类型下拉列表中选择唯一密钥

唯一约束与唯一索引

关于UNIQUE约束和UNIQUE索引之间的区别存在一些混淆。 虽然可以使用不同的Transact-SQL命令来创建它们(ALTER TABLE ... ADD CONSTRAINT for constraints和CREATE UNIQUE INDEX for indexes),但它们大多数情况下具有相同的效果。 事实上,当你创建一个UNIQUE约束时,它实际上在表上创建一个UNIQUE索引。 但值得注意的是,有几点不同: