2012-11-30 139 views

回答

53

你需要右鍵單擊並選擇Indexes/Keys

enter image description here

然後彈出一個對話框,你可以添加一個新的指數,以指數的列表(在左側),並把它定義爲一個unique指數:

enter image description here

+13

這是一個唯一的索引,而不是唯一的約束。兩者都創建索引,但它們之間存在差異(請參閱http://databases.about.com/od/sqlserver/a/unique.htm)。如果你想要一個UNIQUE約束,你應該選擇Type = Unique Key。 –

+1

@ guillegr123:是的,你是對的 - 但你也在這裏挑剔......最後,這兩種方法都避免了重複,最後,這兩種方法都會在SQL Server中產生一個唯一的索引。我更喜歡使用唯一索引,因爲它允許我明確地設置某些屬性(如填充因子)(如果需要) - 哪些是唯一約束不允許設置的。 –

4

嘗試右鍵單擊並選擇Indexes/Keys,添加新索引並將Is Unique設置爲是。在表設計

30

表中的設計師,就單擊鼠標右鍵,然後選擇索引/鍵

enter image description here

索引/鍵窗口將打開。單擊按鈕添加,創建新的索引/鍵,選擇列是在性能獨特:

enter image description here

在新的索引/鍵的屬性,設置鍵入唯一密鑰

enter image description here

這是對的uniq生成的代碼UE約束:

ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [IX_Table_1] UNIQUE NONCLUSTERED 
(
    [myUniqueColumn] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
GO 
+1

如果我想使用幾列創建一個唯一約束,那麼我可以將所有我想要的列添加到新索引/鍵的'Columns'屬性中? (例如名字和姓氏 - 可以重複但不是兩者都重複)? – Ben

+2

是的。如果按Columns屬性上的「...」按鈕,則會顯示一個窗口,您可以在其中選擇所需的所有列,還可以指定該索引中列的順序。並且所有選定列的組合都將考慮到密鑰的唯一性,如您在示例中所述。 –

0

你從哪個列,您需要從表中添加獨特的鍵,你可以選擇Indexes/Keys只要右擊。然後你可以添加或刪除你想設置唯一密鑰的列