简短版:是否有某种方法可以使用Visual Studio 2010的SQL Server数据工具有条件地编译SQL Server数据项目中的TSQL代码块?
我正在Visual Studio 2010中使用SQL Server数据工具在实验性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