/ / Come creare vincoli univoci in SQL Server? - sql, sql-server

come creare vincoli univoci in SQL Server? - sql, sql-server

Vorrei creare un vincolo univoco che specifica che per un ID e BriefID dovrebbe esserci un nome univoco.

per esempio. il seguente non sarebbe consentito a causa del vincolo.

ID   BriefID   Name
12    32        first
12    32        first

la struttura della tabella è la seguente.

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

risposte:

3 per risposta № 1

Che ne dite di

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

Con questo, non è possibile inserire queste due righe che hai menzionato nella tua domanda. Il tentativo di inserire la seconda riga causerebbe una violazione del vincolo e non avrebbe avuto successo.


1 per risposta № 2

Puoi ottenerlo con un indice unico:

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