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

用户名

我应该在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查询中执行它们两者?

我该如何解决?

耶罗恩

您有三个问题:

  1. ;在第二行代码的末尾以终止该语句
  2. FOR MEMBER_ID在最后一个语句中应该有FOR Sys_date
  3. 您重复一遍,ADD不必重复

假设此表结构为:

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;

参见此sqlfiddle

理论上讲,也可以MSDN的页面上ALTER TABLE看到这一点,尽管我很容易承认这些规范可能很难阅读。这是他们对其解释的一种刺探:

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

ADD关键字出现一次,而} [ ,...n ]位告诉你,你可以重复{括号}位n时间,由分离,

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章