如何在sql server中创建唯一约束?

时间:2014-01-07 13:11:25

标签: sql sql-server

我想创建一个唯一约束,指定对于ID和BriefID,应该有一个唯一名称。

例如。由于约束,不允许以下内容。

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

2 个答案:

答案 0 :(得分:3)

怎么样

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

有了这个,您无法在问题中插入这两行。尝试插入第二行会导致约束违规,但不会成功。

答案 1 :(得分:1)

您可以使用唯一索引实现此目的:

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