如何在PowerShell脚本中执行SQL作为Visual Studio Team Services构建任务的一部分?

时间:2017-09-10 20:20:47

标签: azure-pipelines sqlcmd azure-powershell azure-pipelines-build-task invoke-sqlcmd

如何在Azure托管代理中的VSTS构建任务中作为PowerShell脚本的一部分对Azure SQL数据库执行SQL?

构建定义有许多任务:我们可以执行PowerShell脚本

enter image description here

使用DACPAC或SQLCMD部署SQL

enter image description here

甚至在远程计算机上执行PowerShell

enter image description here

但是如何简单地将SQL作为PowerShell脚本的一部分执行? Invoke-Sqlcmd不可用作“Azure PowerShell”任务的一部分。

我想有可能远程桌面到应用服务,在那里安装SQL Server相关位并在目标机器上使用'PowerShell',但我觉得必须有一个更简单的方法 - 也许我只是遗漏了一些东西明显

3 个答案:

答案 0 :(得分:2)

您可以使用Azure SQL数据库部署任务,有SQL脚本文件和内联SQL脚本类型。

enter image description here

注意:您可以使用托管代理,但不能托管VS 2017代理。

答案 1 :(得分:1)

  

但是如何简单地将SQL作为PowerShell脚本的一部分执行?   Invoke-Sqlcmd不能作为Azure PowerShell'的一部分提供。任务。

我认为我们可以使用此PowerShell脚本使用Azure Powershell for Azure SQL数据库运行SQL:

$connectionString = "Data Source=jasontest321.database.windows.net;Initial Catalog=jasonsql;User ID=jason;Password='password';Connection Timeout=90"
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString)
$query = "insert into test1 values (3) ; ;" 
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection)
$connection.Open()
$command.ExecuteNonQuery()
$connection.Close()

这是我的测试:

enter image description here

我们也可以使用Azure门户查询编辑器来查询表格,如下所示:

enter image description here

答案 2 :(得分:0)

运行后,Invoke-SqlCmd可用:

Install-Module -Name SqlServer -Force

已在windows-2019ubuntu-18.04(目前最新)上进行了测试。