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

How to execute SQL in a PowerShell script as part of a Visual Studio Team Services build task?

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

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

或使用 DACPAC 或 SQLCMD

部署 SQL

甚至在远程机器上执行 PowerShell

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

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

but how to simply execute SQL as part of a PowerShell script? Invoke-Sqlcmd isn't available as part of the 'Azure PowerShell' task.

我认为我们可以使用此 PowerShell 脚本 运行 SQL Azure Powershell for Azure 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()

这是我的测试:

我们也可以使用 Azure 门户 查询编辑器 来查询 table,像这样:

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

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

Invoke-SqlCmd 在您 运行:

之后可用
Install-Module -Name SqlServer -Force

已在 windows-2019ubuntu-18.04 上测试(此时最新)。