Я пытаюсь написать сценарий обновления базы данных SQL Server. Я хочу проверить наличие столбца в таблице, а затем, если он не существует, добавить столбец со значением по умолчанию и, наконец, обновить этот столбец на основе текущего значения другого столбца в той же таблице. Я хочу, чтобы этот скрипт запускался несколько раз, при первом обновлении таблицы и при последующих запусках скрипт следует игнорировать. Мой сценарий в настоящее время выглядит следующим образом:
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable')
BEGIN
ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0
UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL
END
SQL Server возвращает ошибку «Недопустимое имя столбца« IsDownloadable »», т. Е. Мне нужно зафиксировать DDL, прежде чем я смогу обновить столбец. Я пробовал различные перестановки, но я никуда не спешу.