SQL Сервер поддерживает синтаксис, позволяющий удалять более одного столбца за раз. Как удалить несколько столбцов с помощью одного оператора ALTER TABLE на SQL сервере?
Хотя, кажется, невозможно заставить его работать с классом IF EXISTS
для каждого случая.
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
Есть ли ограничение этого предложения при объединении сразу нескольких столбцов?