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

Fügen Sie mehrere Einschränkungen in einer Anweisung hinzu

Sie haben drei Probleme:

  1. Sie schließen die Anweisung mit dem ; ab am Ende Ihrer zweiten Codezeile.
  2. Du hast FOR MEMBER_ID in der letzten Anweisung, die wahrscheinlich FOR Sys_date sein sollte .
  3. Sie wiederholen ADD aber müssen nicht .

Angenommen diese Tabellenstruktur:

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

Diese DDL funktioniert:

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

Siehe dieses sqlfiddle .

Sie können siehe theoretisch auch auf der MSDN-Seite auf ALTER TABLE , obwohl ich bereitwillig zugeben würde, dass diese Spezifikationen schwer zu lesen sind. Hier ist ein Stich, wie sie es erklären:

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

Das ADD Schlüsselwort kommt einmal vor, und der } [ ,...n ] bit sagt Ihnen, dass Sie das Bit zwischen {Klammern} n wiederholen können Mal, getrennt durch , .