繁体   English   中英

Azure Devops - 如何使用 powershell 命令运行 SQL 脚本

[英]Azure Devops - How to use a powershell command to run SQL Scripts

所以,我正在 azure Devops 中创建一个构建/部署管道。

我遇到的一个问题是,每次进行部署时我都需要运行一些 SQL 脚本。 我正在尝试通过内联 Powershell 任务来做到这一点。

问题是本机 powershell 无法识别Invoke-Sqlcmd 所以我不得不在同一个脚本上安装模块

我正在这样做

Install-Module -Name SqlServer -AllowClobber -Scope CurrentUser -Force

但是任何时候它试图运行它都会向我抛出这个错误:

##[错误] 使用“2”个参数调用“ShouldContinue”的异常:“Windows PowerShell 处于非交互模式。读取和提示功能不可用。”

我试过这个:

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Install-Module -Name SqlServer -Scope CurrentUser'

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Install-Module -Name SqlServer -AllowClobber -Scope CurrentUser -Force'

首先我收到WARNING: User declined to install module (SqlServer) ,但第二次成功了。 你能展示你在管道中如何准确地调用它吗?

上述错误是因为您的自托管代理正在服务模式下运行。 我可以在配置为作为服务运行的自托管代理上重现相同的错误。

当我在配置为交互式运行的自托管代理上使用上述脚本运行我的管道时。 它工作得很好。

您可能需要重新安装自托管代理并将其配置为以交互方式运行。 在这里查看更多信息。

或者,您可以在代理计算机上预安装 SqlServer 模块。 然后您将能够在您的管道中使用 invoke-sqlcmd 命令。

您还可以使用 microsoft-hosted 代理来运行您的管道。 invoke-sqlcmd 命令在代理windows-2019vs2017-win2016

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM