Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

CHECK CONSTRAINT sur plusieurs colonnes

Oui, définissez la CHECK CONSTRAINT dans la table niveau

CREATE TABLE foo (
   bar int NOT NULL, 
   fred varchar(50) NOT NULL,

   CONSTRAINT CK_foo_stuff CHECK (bar = 1 AND fred ='fish')
)

Vous le déclarez en ligne en tant que colonne contrainte

...
fred varchar(50) NOT NULL CONSTRAINT CK_foo_fred CHECK (...)
...

Modifier, plus facile à poster qu'à décrire. Corrigez vos virgules.

CREATE TABLE dbo.Test 
(   
  EffectiveStartDate  dateTime2(2)        NOT NULL,
  EffectiveEndDate    dateTime2(2)        NOT NULL,  --need comma
  CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate) --no comma
);

Bien sûr, la question demeure :utilisez-vous une contrainte CHECK alors qu'elle devrait être une contrainte FK... ?