【问题标题】:Devops deployment passing arguments\parameters to a SQL ScriptDevops 部署将参数\参数传递给 SQL 脚本
【发布时间】:2020-09-08 20:47:05
【问题描述】:

我正在尝试运行一个为 SSIS 包创建环境变量的脚本。
根据目的地,即 SIT、UAT 或 PRD,我希望我的脚本根据目的地使用不同的变量值。在我的脚本中,我有一个变量 @DepoyServer,我希望在使用执行 SQL 脚本任务时将其填充为 Devops 的参数或参数。
然后我的代码查看设置的内容并为每个环境设置其他公共变量 例如数据库连接字符串变量将设置为环境变量。 示例脚本代码为:-

-- DECLARE @DeployServer varchar(100)
Declare @DBConnectionString varchar(500)
IF @DeployServer = 'UAT'
   SET @DBConnectionString = 'ConnectionStringForUAT'

IF @DeployServer = 'PRD'
   SET @DBConnectionString = 'ConnectionStringForPRD'

/*
Code to create environment varaiables and populate the variable with @DBConnectionString
*/

SQL 脚本文件路径设置使用:- $(System.DefaultWorkingDirectory)/path/SQLScript.sql

有一个参数字段。 我已经把它弄死了,但我得到的是 DACPAC 的例子。

【问题讨论】:

  • 您好 user1790316,您的问题有更新吗?以下 Venkataraman R 的回答是否有助于解决您的问题?检查this rule,如果有帮助,您可以考虑接受它作为答案。这只是一个提醒:)

标签: sql database azure-devops azure-pipelines-release-pipeline ssis-2014


【解决方案1】:

您使用 sqlcmd 变量为部署服务器定义 sql 脚本。

:SetVar DeployServer UAT

Declare @DBConnectionString varchar(500)
IF $(DeployServer) = 'UAT'
   SET @DBConnectionString = 'ConnectionStringForUAT'

IF $(DeployServer) = 'PRD'
   SET @DBConnectionString = 'ConnectionStringForPRD'

现在,在 sqlcmd 工具中调用此脚本,并为 DeplyServer 设置正确的值

sqlcmd -v DeployServer ="UAT" -i $(System.DefaultWorkingDirectory)/path/SQLScript.sql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 2021-09-01
    • 2019-12-13
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    相关资源
    最近更新 更多