2010-12-20 77 views

回答

14

唯一索引添加到說明列。

使用Sql Server Management Studio在表格上單擊鼠標右鍵並選擇「設計」。然後右鍵點擊一列並選擇「索引/鍵」。您將與添加在底部下面的窗口

alt text

點擊提示左,然後指定你的索引屬性。如果你想使用一個DDL腳本,然後使用類似這樣

CREATE UNIQUE NONCLUSTERED INDEX [IX_INDEXNAME] ON [dbo].[TABLENAME] 
(
    [Description] ASC 
) 
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
GO 
+3

我建議使用唯一性約束而不是索引。約束語法是實現關鍵約束的更傳統方式。與索引語法不同,約束是標準SQL,並且更有可能被數據庫的其他用戶以及訪問數據庫模式元數據的軟件工具所理解和識別。唯一性約束自動爲您創建索引。 – sqlvogel 2010-12-20 08:45:27

+2

我還建議您應該在腳本中始終執行此操作(以及其他任何DDL更改),以便它們可以正確版本化並存儲在您的soruce控制系統中。數據庫更改決不應該從Management Studio GUI進行。 – HLGEM 2012-02-14 23:43:24

+0

當我嘗試「添加」一個項目,並點擊(一般)下的列,它只給我選擇我的「ID」列,並不讓我(或甚至顯示)的「字符串」列向下組合框。我只有兩列,一個是ID,另一個只是文本列,每個項目都應該是唯一的。 當我點擊添加並轉到列時,爲什麼它不允許我在索引/鍵部分下選擇基於文本的列? – 2013-10-19 10:49:16

21

沒有這樣的事情作爲'次要主鍵'。每個表有一個主鍵。

Description列創建UNIQUE constraint(極不尋常的事,BTW。例如,它是更常見的對Product Name創建唯一索引,而不是Product description),或者如果你有空值在Description列上創建一個Filtered index(SQL Server 2008中起)

ALTER TABLE dbo.yourTable 
    ADD CONSTRAINT UQ_yourTable_Description UNIQUE ([Description]); 
0

還有另一種方法,如果你喜歡做這與SSMS GUI:

我與名MyUniqueColumn取代了Description列爲了這個例子。

  1. 右鍵單擊「索引」,在SSMS Solution Explorer中的桌子底下,然後單擊「新建索引...」(我知道你在找創建contstraint,而不是一個指標,但這正是ADD CONSTRAINT SQL腳本執行。

enter image description here

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

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

  • 單擊兩個窗口OK
  • +0

    我無法查看圖像(我的防火牆公司塊)。 ***圖像中的成績單文字可能爲文本(SQL)***? – Kiquenet 2016-08-22 07:52:32

    +0

    @Kiquenet圖像只是編號步驟的截圖。讓我知道,如果你不能按照任何步驟,我會添加更多的文字。 – 2016-08-22 14:11:49

    相關問題