2014-01-07 3 views
1

Я хотел бы создать уникальное ограничение, которое указывает, что для ID и BriefID должно быть уникальное имя.Как создать уникальные ограничения в sql-сервере?

например. из-за ограничения не будет допущено следующее.

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 
) 
Смежные вопросы