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

Aggiungi più vincoli in un'unica istruzione

Hai tre problemi:

  1. Chiudi l'istruzione con il ; alla fine della seconda riga di codice.
  2. Hai FOR MEMBER_ID nell'ultima istruzione, che dovrebbe essere probabilmente FOR Sys_date .
  3. Ripeti ADD ma non è necessario .

Assumendo questa struttura di tabella:

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

Questo DDL funzionerà:

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

Vedi questo sqlfiddle .

puoi in teoria, puoi vederlo anche sulla pagina di MSDN su ALTER TABLE , anche se ammetto prontamente che queste specifiche possono essere difficili da leggere. Ecco una pugnalata su come lo spiegano:

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....

Il ADD la parola chiave compare una volta e il } [ ,...n ] bit ti dice che puoi ripetere il bit tra {parentesi} n volte, separati da un , .