我应该在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查询中执行它们两者?
我该如何解决?
您有三个问题:
;
在第二行代码的末尾以终止该语句。FOR MEMBER_ID
在最后一个语句中应该有FOR Sys_date
。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] 删除。
我来说两句