sql - 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 的例子。
解决方案
您使用 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
推荐阅读
- javascript - 将属性传输到组件的简单方法
- c# - C# 我可以启动一个线程并使用调度程序来安排它的工作吗?
- java - XtextdoGenerate 在作为 warfile 运行时返回 xtend 符号
- azure-devops - 寻找回购分支令牌
- javascript - RXJS 立即发出并重试
- python - 使用 Python 的具有 p 值的 Seaborn 相关矩阵
- c# - 从各种 BoxCollider2D 计算总区域高度和宽度
- java - 警报消息验证 - 测试自动化 (Selenium)
- angular - 按钮使用primeng重叠
- android - 如何根据我的应用程序设置 Android 的 GPU/cpu 频率?