首页 > 解决方案 > Devops 部署将参数\参数传递给 SQL 脚本

问题描述

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

-- 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 的例子。

标签: sqldatabaseazure-devopsazure-pipelines-release-pipelinessis-2014

解决方案


您使用 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

推荐阅读