sql >> Database >  >> RDS >> Sqlserver

CONTROLEER BEPERKING op meerdere kolommen

Ja, definieer de CHECK CONSTRAINT aan de tabel niveau

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

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

Je declareert het inline als een kolom beperking

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

Bewerken, makkelijker te plaatsen dan te beschrijven. Je komma's gerepareerd.

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

Natuurlijk blijft de vraag of je een CHECK-beperking gebruikt waar het een FK-beperking zou moeten zijn...?



  1. Waarom lijk ik Oracle 11g niet te dwingen meer CPU's te verbruiken voor een enkele SQL-query?

  2. Hoe de Where-clausule te gebruiken in Select-instructie in SQL Server - SQL Server / TSQL-zelfstudie, deel 109

  3. Hoe kunnen we de hoofdtekst van de gecodeerde opgeslagen procedure in SSMS bekijken?

  4. Hoe GRADEN() werkt in MariaDB