2014-01-07 144 views
1

我想創建一個唯一的約束,它指定一個ID和BriefID應該有一個唯一的名稱。如何在sql server中創建唯一約束?

例如。由於約束,以下內容將不被允許。

ID BriefID Name 
12 32  first 
12 32  first 

表結構如下。

PK ID     int  
    Name     nvarchar(50) 
FK BriefID    int  
    StatusID    int  
    StartDate   datetimeoffset(7) 
    EndDate    datetime 
    FrequencyID   int  
    MaxArticleDisplay int  
    LastDateAlertSent datetime 

回答

3

如何

ALTER TABLE dbo.YourTable 
ADD CONSTRAINT UC_ID_BriefID UNIQUE(ID, BriefID, Name) 

有了這個,你不能插入你在你的問題中提到這兩個行。嘗試插入第二行會導致違反約束並且不會成功。

+0

謝謝你的快速解答! – Xerxes

1

你可以用一個唯一索引實現這一目標:

CREATE UNIQUE NONCLUSTERED INDEX [UIX_TABLENAME_001] ON [TABLENAME] 
(
    ID, 
    BriefID, 
    Name 
)