azure - 如何将变量传递给 azure devops 管道中的 SqlAzureDacpacDeployment@1 任务
问题描述
我正在尝试让应用程序访问数据库。其中一个步骤要求必须在数据库上运行创建用户的脚本。我通过 azureSqlAzureDacpacDeployment@1 任务的管道执行此操作。
使用托管标识保护来自应用服务的 Azure SQL 数据库连接
- task: SqlAzureDacpacDeployment@1
inputs:
azureSubscription: 'xxxxxxxx (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)'
AuthenticationType: 'aadAuthenticationIntegrated'
ServerName: '$(SqlServerName)'
DatabaseName: '$(SqlDatabaseName)'
deployType: 'InlineSqlTask'
SqlInline: |
CREATE USER [$(AppName)] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [$(AppName)];
ALTER ROLE db_datawriter ADD MEMBER [$(AppName)];
GO
InlineAdditionalArguments: '-v $(ApiAppName)'
IpDetectionMethod: 'AutoDetect'
ApiAppName = 'AppName=MyApplication'
##[error]The format used to define the new variable for Invoke-Sqlcmd cmdlet is invalid.
Please use the 'var=value' format for defining a new variable.Check out how to troubleshoot
failures at https://aka.ms/sqlazuredeployreadme#troubleshooting-
解决方案
您似乎正在尝试在 SQL 脚本中定义变量。您可以尝试以下链接状态的DECLARE
语句和语句:SET
-- Declare two variables.
DECLARE @AppName nvarchar(50);
-- Set their values.
SET @AppName = 'MyApplication';
推荐阅读
- sqlkata - SqlKata - 有没有办法告诉 SqlKata 编译器在构建查询字符串时不包装标识符?
- java - Android Studio APP在虚拟/真实设备上的差异
- matplotlib - 如何将小部件放置在面板 HoloViews 动态地图上
- excel - 如何在 VBA 上制作查询页面模板
- python - 在二级索引上有效地组合数据帧
- html - 当屏幕变宽时,响应时间线指针正在移动
- azure - 我有一个应用服务计划和 4 个应用服务。所有应用服务使用相同的应用服务计划
- python - 不一致的 Python 错误 - 类在终端中可以正常工作,但在脚本中不能正常工作
- browser - 是否可以永久禁用自动滚动?
- javascript - 仅使用 javascript 创建具有样式类和 onclick 功能的按钮。它可以做得更聪明吗?