gpt4 book ai didi

sql - 如何在单个 ALTER TABLE 中添加和删除列

转载 作者:行者123 更新时间:2023-12-03 10:41:42 25 4
gpt4 key购买 nike

我尝试了以下操作,但出现语法错误

ALTER TABLE Grades ( 
DROP COLUMN (Student_FamilyName, Student_Name),
ADD Student_id INT );

是否可以执行 DROP和一个 ADD在同一 ALTER TABLE陈述?

最佳答案

如果你看 ALTER TABLE SYTAX

你会看到这个

ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name 
{
ALTER COLUMN column_name
{
[ type_schema_name. ] type_name [ ( { precision [ , scale ]
| max | xml_schema_collection } ) ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ] [ SPARSE ]

| {ADD | DROP }
{ ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION | SPARSE }
}
| [ WITH { CHECK | NOCHECK } ]

| ADD
{
<column_definition>
| <computed_column_definition>
| <table_constraint>
| <column_set_definition>
} [ ,...n ]

| DROP
{
[ CONSTRAINT ]
{
constraint_name
[ WITH
( <drop_clustered_constraint_option> [ ,...n ] )
]
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
} [ ,...n ]

这可以减少到
ALTER TABLE { ALTER COLUMN column_name | ADD | DROP }
根据 Transact-SQL Syntax Conventions (Transact-SQL) | (竖条)

Separates syntax items enclosed in brackets or braces. You can use only one of the items.



因此,您不能在单个语句中更改、删除或添加。您还有无法使用的括号和逗号。所以你需要
ALTER TABLE Grades DROP COLUMN (Student_FamilyName, Student_Name);
ALTER TABLE Grades ADD Student_id INT;

如果你需要它们是一个原子 Action ,你只需要包装在事务中

关于sql - 如何在单个 ALTER TABLE 中添加和删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989527/

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