一尘不染

如何在SQL Server中使用单个ALTER TABLE语句删除多列?

sql

我想编写一个SQL命令,以在一条ALTER TABLE语句中从单个表中删除多个列。

MSDN的ALTER TABLE文档中

DROP { [CONSTRAINT] constraint_name | COLUMN column_name }

指定从表中删除constraint_name或column_name。如果兼容级别为65或更早版本,则不允许DROP
COLUMN。可以列出多个列和约束。

它说可以在语句中列出多个列,但是语法没有显示可选的逗号或什至暗示语法的任何内容。

我应该如何编写SQL以在一条语句中删除多列(如果可能)?


阅读 289

收藏
2021-03-17

共1个答案

一尘不染

对于SQL Server:

ALTER TABLE TableName
    DROP COLUMN Column1, Column2;

语法是

DROP { [ CONSTRAINT ] constraint_name | COLUMN column } [ ,...n ]

对于MySQL:

ALTER TABLE TableName
    DROP COLUMN Column1,
    DROP COLUMN Column2;

或像这样1:

ALTER TABLE TableName
    DROP Column1,
    DROP Column2;

1该词COLUMN可选的, 并且可以省略,除了RENAME COLUMN(以区分列重命名操作和RENAME表重命名操作)。更多信息在这里

2021-03-17