我正在使用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子句
答案 0 :(得分:0)
我设法实现此目的的方法是在每个外部文件中执行单独的if子句。这不是一个漂亮的东西,但它确实有效。我创建了一个output子句来注册对数据库所做的所有更改。