我试图在Azure DevOps中运行DevOps来执行sql文件并传递变量。
我使用$(Database)在sql文件中定义了变量。
USE '$(Database)'
GO
SELECT name FROM dbo.names where name = '$(Name)'
GO
yaml定义下面,我不知道如何把SqlAdditionalArguments,低于一个是不起作用的
- task: SqlAzureDacpacDeployment@1
displayName: 'Run SQL'
inputs:
azureSubscription: 'test'
AuthenticationType: servicePrincipal
ServerName: 'database.windows.net'
DatabaseName: dev
deployType: SqlTask
SqlFile: '$(Agent.BuildDirectory)/s/scripts/SqlNames.sql'
SqlAdditionalArguments: -Database='dev' -Name='test123'
SqlAdditionalArguments中变量的语法是什么?
发布于 2022-09-22 16:39:47
您可以实现如下所述:
以下文件存在scripts\test.sql
,其内容如下:
SELECT $(MYVAR1) AS Var1, $(MYVAR2) AS Var2
可以从提供参数值的文件中执行SQL。
对于Azure SQL,如下所示:
- task: SqlAzureDacpacDeployment@1
inputs:
azureSubscription: MyServiceConnection
AuthenticationType: 'servicePrincipal'
ServerName: MyServerName
DatabaseName: MyDatabaseName
deployType: 'SqlTask'
SqlFile: '$(Build.SourcesDirectory)\scripts\test.sql'
SqlAdditionalArguments: -Variable "MYVAR1='String1'", "MYVAR2='String2'"
对于像这样的机器上的Server:
- task: SqlDacpacDeploymentOnMachineGroup@0
inputs:
TaskType: 'sqlQuery'
SqlFile: '$(Build.SourcesDirectory)\scripts\test.sql'
ServerName: '(localdb)\MSSQLLocalDB'
DatabaseName: 'master'
AuthScheme: 'windowsAuthentication'
AdditionalArgumentsSql: -Variable "MYVAR1='String1'", "MYVAR2='String2'"
发布于 2022-02-28 17:18:02
医生说是调用-Sqlcmd
(可选)附加调用-Sqlcmd参数,这些参数将在Azure数据库(如-ConnectionTimeout 100 -OutputSqlErrors )上执行给定的SQL查询时应用。
https://stackoverflow.com/questions/71298082
复制相似问题