2009-10-19 80 views
33

我在我的SQL Server數據庫中有一個簡單的表。此表包含兩列:ID int, Name nvarchar(50)ID列是我的表的主鍵。如何在SQL Server 2008中創建「無重複」列?

我希望「Name」列爲「(No Duplicates)」,就像在Microsoft Access中一樣,但是這一列不是主要列。我怎麼能這樣做?

+3

請不要回滾對標籤的更改 - 此問題不是關於Microsoft Access,而是SQL Server上的唯一約束。 – 2009-10-19 14:33:16

回答

78

添加unique constraint該列:

ALTER TABLE Foo ADD CONSTRAINT UQ_Name UNIQUE (Name) 

要通過SQL Management Studio中的UI添加:

  1. 打開SQL Server Management Studio中。
  2. 展開您希望創建約束的數據庫文件夾。
  3. 右鍵單擊要添加約束條件的表格並單擊設計
  4. 在表設計器中,單擊索引/鍵
  5. Click Add
  6. 在類型下拉列表中選擇唯一密鑰

要處理髮生唯一約束違規的情況,請參見error 2601

+1

該鏈接適用於Sql Server 2000,而據我所知,SSMS的指令不適用於最新版本。 – nycdan 2012-09-05 21:28:47

+0

+1解決方案..我做了同樣的事情,我無法插入重複值。但主鍵值失去了我的每一個嘗試...意思是如果我的PK是1,我試圖插入重複值兩次。下一次正確的更新將是PK 4.我怎樣才能避免它? – rinuthomaz 2014-11-06 13:43:50

+0

我更喜歡這個回答我發佈的GUI解決方案,因爲它真的更簡單和更快,但我仍然發佈那些有強大的GUI偏好。 – 2015-12-17 19:59:04

7

這也可以,如果你喜歡做的另一種方式與SSMS GUI:

  1. 右鍵點擊「索引」桌下的SSMS解決方案資源管理器,然後單擊「新建索引...」(我知道您想創建一個contstraint,而不是一個指標,但這是ADD CONSTRAINT SQL腳本做什麼。

enter image description here

  • 給新索引的名稱(例如。 「UQ_MyUniqueColumn」),選中 「唯一」,並點擊 「添加...」
  • enter image description here

  • 檢查你列在接下來的窗口中
  • enter image description here

  • 點擊OK在兩個窗口
  • 相關問題