一次删除具有if exists的多个列

lfapxunr  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(323)

sql server支持允许一次删除多个列的语法。如何在SQLServer中用一条ALTERTABLE语句删除多列?
尽管似乎不可能强迫它 IF EXISTS 每次事故的索赔。
更改表格

DROP
| COLUMN [ IF EXISTS ]
      {
          column_name
      } [ ,...n ]

仅当列或约束已存在时才有条件地删除它。
例子:

CREATE TABLE t(i INT, col1 INT, col2 INT);

ALTER TABLE t DROP COLUMN IF EXISTS col1, col2;
-- col1, col2 were successfully removed

ALTER TABLE t DROP COLUMN IF EXISTS col1,  col2;
-- Msg 4924 Level 16 State 1 Line 1
-- ALTER TABLE DROP COLUMN failed because column 'col2' does not exist in table 't'.

基于错误消息 IF EXISTS 仅对第一列有效。
db<>小提琴演示
当一次与多个列组合时,这个子句是否有限制?

kiz8lqtg

kiz8lqtg1#

语法有点麻烦,但是

ALTER TABLE t DROP COLUMN IF EXISTS col1, 
                   COLUMN IF EXISTS col2;

工作正常

相关问题