Я пытаюсь автоматизировать сценарий sql для добавления столбца в существующие базы данных в данной системе. Скрипт будет запущен в системе с одной или другой базой данных. Скрипт не должен вызывать ошибки ни в одном из случаев:
1. Одна из двух баз данных существует
2. Обе базы данных существуют
3. Ни одна база данных не существует.
Я пытался это сделать, но получаю сообщение об ошибке, когда база данных 'DatabaseName' не существует. Я хочу, чтобы сценарий был проигнорирован в этом случае.
IF DB_ID('DatabaseName') IS NOT NULL
BEGIN
PRINT 'DatabaseName Exists'
IF COL_LENGTH('[DatabaseName].[dbo].[Table]', 'NewColumn') IS NULL
BEGIN
ALTER TABLE [DatabaseName].[dbo].[Table]
ADD [NewColumn] bit NOT NULL DEFAULT 0;
PRINT 'Modified DatabaseName.Table'
END
END
ELSE
BEGIN
PRINT 'DatabaseName Does Not Exist'
-- therefore do nothing
END
Это дает мне ошибку:
Msg 2702, Level 16, State 2, Line 6
Database 'DatabaseName' does not exist.
Я также пробовал разные варианты
Используйте 'DatabaseName'
с такими же или похожими ошибками, потому что они не существуют.
Чтобы уточнить: это нормально, если его не существует. Я просто пытаюсь корректно обработать ошибку, поэтому установка продолжается