4

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

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

在此处输入图像描述

或使用 DACPAC 或 SQLCMD 部署 SQL

在此处输入图像描述

甚至在远程机器上执行 PowerShell

在此处输入图像描述

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

我想可以将桌面远程连接到应用程序服务,在那里安装 SQL Server 相关位并使用“目标机器上的 PowerShell”,但我觉得必须有一种更简单的方法——也许我只是错过了一些明显的东西

4

3 回答 3

3

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

在此处输入图像描述

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

于 2017-09-12T01:52:44.797 回答
1

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

我认为我们可以使用这个 PowerShell 脚本通过 Azure Powershell 为 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()

这是我的测试:

在此处输入图像描述

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

在此处输入图像描述

于 2017-09-11T06:01:35.023 回答
0

运行后 Invoke-SqlCmd 变为可用:

Install-Module -Name SqlServer -Force

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

于 2020-02-06T16:43:41.427 回答