Sql 在一条语句中添加多个约束

Sql 在一条语句中添加多个约束,sql,sql-server,sql-server-2012,constraints,Sql,Sql Server,Sql Server 2012,Constraints,我应该在Microsoft SQL Server 2012中修改当前名为MEMBER的表 我正在尝试修改这些表 ALTER TABLE MEMBER ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID); ADD CONSTRAINT Sys_date DEFAULT GETDATE() FOR MEMBER_ID; 上面这句话不起作用,它说: 味精156,第15级,状态1,第3行 关键字“CONSTRAINT

我应该在Microsoft SQL Server 2012中修改当前名为MEMBER的表

我正在尝试修改这些表

ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID);
ADD CONSTRAINT Sys_date DEFAULT GETDATE() FOR MEMBER_ID;
上面这句话不起作用,它说:

味精156,第15级,状态1,第3行
关键字“CONSTRAINT”附近的语法不正确

我想我做错了什么,但我不确定是什么

ALTER TABLE TITLE 
ADD CONSTRAINT U_TITLEID UNIQUE(TITLE_ID), primary key (TITLE_ID);
add constraint C_CATEGORY CHECK(CATEGORY='DRAMA' OR 'COMEDY' OR 'ACTION'
OR 'CHILD' OR 'SCIFI' OR 'DOCUMENTARY';
另外:是否可以将上面的代码添加到前面的代码中,并在同一个sql查询中执行这两个代码


如何解决此问题?

您有三个问题:

ALTER TABLE MEMBER ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID);
ALTER TABLE MEMBER ADD CONSTRAINT Sys_date DEFAULT GETDATE() FOR MEMBER_ID;
  • 终止语句在第二行代码的末尾
  • 在上一条语句中,您有
    表示成员ID
    ,对于Sys\u date
    ,它可能应该是
  • 您可以重复添加,但是
  • 假设此表结构:

    CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);
    
    此DDL将在以下情况下工作:

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

    从理论上讲,你也可以在屏幕上看到这一点,尽管我承认这些规范可能很难阅读。下面是他们如何解释的一个尝试:

    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....
    
    ALTER TABLE[数据库名称。[模式名称]。|模式名称。]表名称
    { 
    更改列名称
    --省略。。。。
    |加
    { 
    | 
    |  
    |  
    }[,…n]
    --省略。。。。
    

    ADD
    关键字只出现一次,
    }[,…n]
    位告诉您可以在{方括号}
    n
    次之间重复该位,以
    分隔,
    最后一位可能是一个问题(“在一个sql查询中可以在不同的表上执行两个DDL语句吗?”)。