gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:19:25 26 4
gpt4 key购买 nike

我应该修改 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;

上面的内容不起作用,它说:

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword '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,但don't have to .

假设这个表结构:

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;

参见this sqlfiddle .

理论上您也可以在 MSDN's page on 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 ] 位告诉您可以在 {brackets} n 之间重复该位 次,用 , 分隔。

关于sql - 在一条语句中添加多个约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com