Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

VERIFICA VINCOLO su più colonne

Sì, definisci il CHECK CONSTRAINT nella tabella livello

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

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

Lo stai dichiarando in linea come una colonna vincolo

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

Modifica, più facile da pubblicare che da descrivere. Corrette le virgole.

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
);

Ovviamente, la domanda rimane se stai usando un vincolo CHECK dove dovrebbe essere un vincolo FK...?