Учитывая следующий SQL:
IF EXISTS (SELECT * FROM sys.columns WHERE name = 'NewFieldName' AND object_id = OBJECT_ID('dbo.MyTableName'))
RETURN
-- Add NewFieldName column to part of the Summer 2012 release cycle.
ALTER TABLE dbo.[MyTableName] ADD
[NewFieldName] SmallINT NOT NULL
CONSTRAINT DF_MyTableName_NewFieldName DEFAULT (2)
UPDATE [MyTableName] SET NewFieldName = 1 WHERE [Name] = 'FindMe' --Update one specific value
Выдает следующее сообщение об ошибке:
Msg 207, уровень 16, состояние 1, строка 10 Недопустимое имя столбца 'NewFieldName'.
Я уверен, что я пропустил что-то основное, но пытаюсь поместить "GO" после того, как alter запустил UPDATE каждый раз, и я не хочу этого делать.
Как я могу структурировать этот оператор, чтобы он проверил, существует ли столбец и, если он его не добавляет, а затем задайте значения, указанные в моих инструкциях UPDATE?