SQL数据工具 - 使用条件运行部署后脚本

时间:2017-08-18 10:53:27

标签: sql-server continuous-integration sql-server-data-tools

我正在使用Database Projecto使用“数据包”

部署数据库

我已经设置了一个参数“客户端”,因此根据客户端我会运行一组不同的脚本。

我尝试了不同的选项,但没有任何效果。

我已经检查了Conditional logic in PostDeployment.sql script using SQLCMD但没有运气

if '$(client)' = 'a' 
:r .\GeneralParams\s01.sql 
:r .\Clients\a\a01.sql 

GO

if '$(client)' = 'b'
:r .\GeneralParams\r01.sql
:r .\Clients\b\b01.sql

在每个外部脚本中都有超过1个GO 当您看到要执行的输出文件时,它会将所有外部文件编译为一个。

有没有人知道如何克服这个美好的解决方法

我尝试了这个选项:

if '$(client)' = 'a' 
:r .\GeneralParams\s01.sql 
if '$(client)' = 'a' 
:r .\Clients\a\a01.sql 

GO

if '$(client)' = 'b'
:r .\GeneralParams\r01.sql
if '$(client)' = 'b'
:r .\Clients\b\b01.sql

但是r01有更多1个GO并退出if子句

1 个答案:

答案 0 :(得分:0)

我设法实现此目的的方法是在每个外部文件中执行单独的if子句。这不是一个漂亮的东西,但它确实有效。我创建了一个output子句来注册对数据库所做的所有更改。