SQL Server支持一次删除多个列的语法。 如何在SQL Server中使用单个ALTER TABLE语句删除多个列?
尽管似乎无法强制其对每个出现的列都使用IF EXISTS
子句。
DROP | COLUMN [ IF EXISTS ] { column_name } [ ,...n ]
Conditionally drops the column or constraint only if it already exists.
例子:
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
仅对第一列生效。
是否在同时处理多个列时有此子句的限制?