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 № 1Che 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
)