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索引。 但值得注意的是,有幾點不同: