sql >> Database >  >> RDS >> Sqlserver

Voeg meerdere beperkingen toe in één instructie

Je hebt drie problemen:

  1. U beëindigt de verklaring met de ; aan het einde van je tweede regel code.
  2. Je hebt FOR MEMBER_ID in de laatste instructie, die waarschijnlijk FOR Sys_date . zou moeten zijn .
  3. Je herhaalt ADD maar hoeft niet .

Uitgaande van deze tabelstructuur:

CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);

Deze DDL werkt:

ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID),
    CONSTRAINT Sys_date DEFAULT GETDATE() FOR Sys_date;

Zie deze sqlfiddle .

Je kunt zie dit theoretisch ook op de MSDN-pagina op ALTER TABLE , hoewel ik graag zou toegeven dat die specificaties moeilijk te lezen zijn. Hier is een poging om te zien hoe ze het uitleggen:

ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name 
{ 
    ALTER COLUMN column_name 
    -- Omitted....
    | ADD 
    { 
        <column_definition>
      | <computed_column_definition>
      | <table_constraint> 
      | <column_set_definition> 
    } [ ,...n ]
    -- Omitted....

De ADD trefwoord komt één keer voor, en de } [ ,...n ] bit vertelt je dat je het bit tussen {haakjes} n . kunt herhalen tijden, gescheiden door een , .



  1. Controleer of twee selecties equivalent zijn

  2. Syntaxis voor MySQL Java-update

  3. MySQL-update met selectie uit een andere tabel

  4. Hoeveel schijfruimte is er nodig om een ​​NULL-waarde op te slaan met behulp van postgresql DB?