SQL Server支持允许一次删除多个列的语法。 How to DROP multiple columns with a single ALTER TABLE statement in SQL Server?
尽管似乎不可能强迫每次出现都使用IF EXISTS
clasue。
ALTER TABLE
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<>fiddle demo
一次与多个列组合时,此子句是否有限制?
最佳答案
语法有点麻烦,但是
ALTER TABLE t DROP COLUMN IF EXISTS col1,
COLUMN IF EXISTS col2;
工作良好
关于sql - SQL Server-使用IF EXISTS一次删除多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62091239/