Je suis nouveau à la SQL CHECK CONSTRAINT
et j'ai besoin de quelque chose pour vérifier qu'une combinaison de trois colonnes dans ma table ne correspond pas à celles d'une autre rangée.
J'ai une table de rapport comprenant trois colonnes que je dois vérifier par: NAME, CREATEDBY, et TYPE. Aucun multiple d'une ligne avec ces trois valeurs étant identique peut être créé.
S'il vous plaît aider!
CREATE TABLE Report( ReportID INT IDENTITY(1,1) NOT NULL, [Name] VARCHAR(255) NOT NULL, CreatedBy VARCHAR(50) NOT NULL, [Type] VARCHAR(50) NOT NULL, PageSize INT NOT NULL DEFAULT 25, Criteria XML NOT NULL CONSTRAINT CHK_Name_CreatedBy_Type CHECK ([Name], CreatedBy, [Type]) ) ALTER TABLE Report ADD CONSTRAINT PK_Report PRIMARY KEY (ReportID)
Évidemment, la contrainte n'a actuellement aucun sens car elle ne fournit pas de boolean …
CONSTRAINT CHK_Name_CreatedBy_Type CHECK ([Name], CreatedBy, [Type])
Merci d'avance!!
Vous avez besoin d'une contrainte UNIQUE:
CONSTRAINT UNQ_Name_CreatedBy_Type UNIQUE ([Name], CreatedBy, [Type])