SQL Server 支持允许一次删除多个列的语法。如何在SQL Server中使用单个ALTER TABLE语句删除多个列?
尽管似乎不可能强迫它与每次出现的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
仅对第一列生效。
数据库<>小提琴演示
当同时与多列组合时,此条款是否有限制?
语法有点麻烦,但是
ALTER TABLE t DROP COLUMN IF EXISTS col1,
COLUMN IF EXISTS col2;
工作正常