Оберните выражение, используя потенциально несуществующую базу данных в EXEC
, чтобы оно компилировалось, только если эта ветвь взята.
Я использовал несколько более коротких идиом для проверки существования базы данных и столбца. Если вы придерживаетесь существующего столбца, ему нужно будет go внутри строки, которая EXEC
ed, с кавычками, удвоенными, чтобы избежать их.
DECLARE @dbname sysname
SET @dbname = N'Courses'
IF DB_ID(@dbname) IS NOT NULL
BEGIN
IF COL_LENGTH('Courses.dbo.Course','isAvailableOnline') IS NULL
BEGIN
EXEC('ALTER TABLE Courses.dbo.Course ADD isAvailableOnline BIT NULL')
END
END