Sql server #SQL数据库项目中的调试是否等效?

Sql server #SQL数据库项目中的调试是否等效?,sql-server,visual-studio,configuration,debug-symbols,Sql Server,Visual Studio,Configuration,Debug Symbols,我正在尝试/想知道您是否可以在SQL数据库项目中使用特定于环境的编码,特别是在PostDeploymentScript.SQL 我知道可以在.SQL文件中添加特定于SQL server环境的代码,但我想知道如何执行C#编译时语句,例如#if DEBUG{} 比方说,如果调试配置的值与发布版本不同,但无论部署到哪个SQL Server,都是相同的,则会出现这种情况 SSDT似乎通过DeploymentPlanModifier扩展提供了定制部署的功能。深入研究这个问题 但是,在简要浏览了帮助主题之后

我正在尝试/想知道您是否可以在SQL数据库项目中使用特定于环境的编码,特别是在PostDeploymentScript.SQL

我知道可以在.SQL文件中添加特定于SQL server环境的代码,但我想知道如何执行C#编译时语句,例如
#if DEBUG{}

比方说,如果调试配置的值与发布版本不同,但无论部署到哪个SQL Server,都是相同的,则会出现这种情况


SSDT似乎通过
DeploymentPlanModifier
扩展提供了定制部署的功能。深入研究这个问题

但是,在简要浏览了帮助主题之后,我怀疑只有在项目中使用DACPAC部署时,此特定功能才可用。如果您首选的部署方法是通过模式比较工具生成更改脚本,那么它可能不起作用。这一点,以及需要编写的C#代码的数量,我该怎么说,看起来几乎令人望而却步


除此之外,我看到的最简单的解决方案是使用专用的SQLCMD变量来控制部署逻辑。但是,这意味着您和您的团队必须在将其部署到默认环境以外的环境之前更改其值。除非您能找到一种完全自动化此过程的方法,否则最终人们将开始犯错误。

看来SSDT确实通过
DeploymentPlanModifier
扩展提供了定制部署的功能。深入研究这个问题

但是,在简要浏览了帮助主题之后,我怀疑只有在项目中使用DACPAC部署时,此特定功能才可用。如果您首选的部署方法是通过模式比较工具生成更改脚本,那么它可能不起作用。这一点,以及需要编写的C#代码的数量,我该怎么说,看起来几乎令人望而却步


除此之外,我看到的最简单的解决方案是使用专用的SQLCMD变量来控制部署逻辑。但是,这意味着您和您的团队必须在将其部署到默认环境以外的环境之前更改其值。除非您能找到一种完全自动化此过程的方法,否则最终人们将开始犯错误。

请查看项目的“SQLCMD变量”部分properties@gvee,SQLCMD变量似乎不是特定于环境的。@RogerWolf创建一个名为“environment”的SQLCMD变量。然后,当您运行SQLPackage.exe(可能是通过您的CD管道)时,您可以使用
/Variables:Environment=dev
为其提供值,并为您的下一阶段
/Variables:Environment=test
等提供值。请查看项目的“SQLCMD Variables”部分properties@gvee,SQLCMD变量似乎不是特定于环境的。@RogerWolf创建一个名为“environment”的SQLCMD变量。然后,当您运行SQLPackage.exe(可能是通过您的CD管道)时,您可以使用
/Variables:Environment=dev
为其提供值,并为您的下一阶段
/Variables:Environment=test
等提供值。感谢您的@Roger-我希望避免这种处理(关于env vars)。我想如果没有可行的解决方案,我将不得不接受这个事实:-)谢谢你@Roger-这是我希望避免的处理方式(关于环境变量)。我想如果没有可行的解决方案,我将不得不接受这个事实:-)