2014-01-07 143 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 
)