Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ajouter plusieurs contraintes dans une seule instruction

Vous avez trois problèmes :

  1. Vous terminez la déclaration avec le ; à la fin de votre deuxième ligne de code.
  2. Vous avez FOR MEMBER_ID dans la dernière instruction, qui devrait probablement être FOR Sys_date .
  3. Vous répétez ADD mais pas obligé .

En supposant cette structure de table :

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

Ce DDL fonctionnera :

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

Voir ce sqlfiddle .

Vous pouvez théoriquement aussi voir ceci sur la page MSDN sur ALTER TABLE , bien que j'admette volontiers que ces spécifications peuvent être difficiles à lire. Voici un aperçu de la façon dont ils l'expliquent :

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

Le ADD mot-clé apparaît une fois, et le } [ ,...n ] bit vous indique que vous pouvez répéter le bit entre {crochets} n fois, séparés par un , .