Краткая версия: есть ли способ условно компилировать фрагменты кода TSQL в проекте данных SQL Server с использованием средств данных SQL Server для Visual Studio 2010?
Я использую инструменты данных SQL Server в Visual Studio 2010 для работы с экспериментальной базой данных SQL Server Express. Конечным пунктом назначения, если все будет работать хорошо, будет корпоративная платформа SQL Server. У меня есть экземпляр 2008 года на одном компьютере и экземпляр 2012 года на другом, потому что моя компания также находится в процессе перехода с 2008 на 2012 год для многих корпоративных баз данных.
В других языках программирования, которые я использовал, директивы препроцессора упрощают условную компиляцию частей базы кода. Наиболее распространенное использование для этого - иметь разный код для разных платформ в ограниченных секциях или исключить отладку выходного кода из сборок релиза .
Оба из них могут быть очень полезны в некоторых процедурах магазина, над которыми я работаю. Есть ли что-нибудь подобное? Я знаю, что могу использовать sqlcmd
переменные для замены определенных значений во время развертывания, но я не могу понять, как использовать это для включения или исключения последующих фрагментов кода.
Пример:
#IF $(DebugVersion) = 'True'
-- A bunch of useful PRINTs and what not
#ELSE
SET NOCOUNT ON
#ENDIF
#IF $(SSVersion) = '2012'
SET @pretty_date = FORMAT(@some_date, 'dddd, MMM dd, yyyy')
#ELSE
SET @pretty_date = CAST(@some_date AS nvarchar(12))
#ENDIF
источник