【问题标题】:How do you reference defined variables in a SQL Server Database Project?如何引用 SQL Server 数据库项目中定义的变量?
【发布时间】:2019-08-15 07:45:50
【问题描述】:

我已经阅读了很多关于此的问题,例如:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/da4bdb11-fe42-49db-bb8d-288dd1bb72a2/sqlcmd-vars-in-create-table-script?forum=ssdt

How to run different pre and post SSDT pubish scripts depending on the deploy profile

我想要实现的是一种基于部署到的环境定义一组脚本的方法。这个想法是将环境作为 SQLCMD 变量作为 azure-devops 管道的一部分传递到一个名为 $(ServerName) 的变量中,我在 sql server 数据库项目中的属性下设置了该变量,默认值为“DEV” .

然后在部署后脚本中使用它,如下所示:

:r .\PostDeploymentScripts\$(ServerName)\index.sql

因此,这应该根据 $(ServerName) 变量选择正确的 index.sql 文件。通过发布并为 $(ServerName) 变量输入“QA”并生成脚本来测试它时,它仍然显示“DEV”脚本。但是,脚本的顶部显示变量已正确设置:

如何让部署后脚本正确引用 $(ServerName) 变量,以便动态设置正确的引用路径?

【问题讨论】:

    标签: visual-studio sqlcmd sql-server-data-project


    【解决方案1】:

    与这篇不错的帖子相反:https://stackoverflow.com/a/54482350/11035005,似乎 :r 指令在编译时被评估并在 xml 配置文件被评估之前插入到 DACPAC 中,因此这是不可能的,正如解释的那样。

    使用的值是构建配置中的默认值或本地值,只能从那里进行控制。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 这不是指向答案的链接,而是指向操作顺序错误的链接。我会尝试在没有它的情况下重写答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 2021-12-06
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多