Что сказал Андомар правильно, вам нужно использовать ключевое слово go
.Однако большая проблема в том, что ваша логика выглядит неправильно.Позвольте мне рассмотреть каждый случай использования:
Если THIS_TABLE
не пусто
Если таблица не пуста, if
ниже возвращает false
ивы никогда не добавите новый столбец.
if (not exists(select 1 from THIS_TABLE))
BEGIN
ALTER TABLE THIS_TABLE add THIS_COLUMN int
END
Тогда следующий сценарий, очевидно, завершится ошибкой, поскольку такого столбца нет THIS_COLUMN
:
IF (NOT EXISTS (SELECT 1 FROM THIS_TABLE
WHERE THIS_COLUMN = 1))
Если THIS_TABLE
пусто
Если таблица пуста, добавляется столбец:
if (not exists(select 1 from THIS_TABLE))
BEGIN
ALTER TABLE THIS_TABLE add THIS_COLUMN int
END
Но тогда следующий if
всегда будет истинным, а оператор обновления будет влиять на нольстроки (потому что таблица пуста).
IF (NOT EXISTS (SELECT 1 FROM THIS_TABLE
WHERE THIS_COLUMN = 1))
BEGIN
UPDATE THIS_TABLE SET THIS_COLUMN = 1
END