use*_*754 7 sql sql-server constraints sql-server-2012
我应该修改我在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;
Run Code Online (Sandbox Code Playgroud)
以上不起作用,它说:
消息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';
Run Code Online (Sandbox Code Playgroud)
另外:是否可以将上面的代码添加到它之前的代码中并在同一个sql查询中执行它们?
我该如何解决?
Jer*_*oen 12
你有三个问题:
;第二行代码末尾的语句终止语句.FOR MEMBER_ID最后一个声明,应该是FOR Sys_date.ADD但不必.假设这个表结构:
CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);
Run Code Online (Sandbox Code Playgroud)
这个DDL将起作用:
ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID),
CONSTRAINT Sys_date DEFAULT GETDATE() FOR Sys_date;
Run Code Online (Sandbox Code Playgroud)
看到这个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....
Run Code Online (Sandbox Code Playgroud)
该ADD关键字出现一次,该} [ ,...n ]位告诉您可以重复{bracket} n次之间的位,用a分隔,.
| 归档时间: |
|
| 查看次数: |
33168 次 |
| 最近记录: |