Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

CHECK CONSTRAINT für mehrere Spalten

Ja, definieren Sie die CHECK CONSTRAINT in der Tabelle Stufe

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

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

Sie deklarieren es inline als Spalte Einschränkung

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

Bearbeiten, einfacher zu posten als zu beschreiben. Korrigieren Sie Ihre Kommas.

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

Natürlich bleibt die Frage, verwenden Sie eine CHECK-Einschränkung, wo es eine FK-Einschränkung sein sollte ...?