Я пытаюсь написать обновление базы данных SQL Server script. Я хочу проверить наличие столбца в таблице, а затем, если он не существует, добавьте столбец со значением по умолчанию и, наконец, обновите этот столбец на основе текущего значения другого столбца в той же таблице. Я хочу, чтобы этот script выполнялся несколько раз, при первом обновлении таблицы и последующих запусках следует игнорировать script. В настоящее время мой script выглядит следующим образом:
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, прежде чем я смогу обновить столбец. Я пробовал разные перестановки, но я быстро не успеваю.