Invoke-Sqlcmd:找不到与参数名称“ OutputAs”匹配的参数

时间:2019-05-31 10:46:01

标签: sql-server powershell

我有一个Powershell脚本,它将运行sql命令并将结果作为数据集输出。

PowerShell:

(Invoke-Sqlcmd -ServerInstance $Server -Database 'STARS' -Username $Username -Password $Password -query $sqlCommand -OutputAs DataSet)

当我尝试运行脚本时出现以下错误。

Invoke-Sqlcmd : A parameter cannot be found that matches parameter name 'OutputAs'.
At D:\PipelinePowerShellScripts\UnitTests\Generate.Auth.Tokens.ps1:163 char:132
+ ... me $Username -Password $Password -query $sqlCommand -OutputAs DataSet ...
+                                                         ~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-Sqlcmd], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

PowerShell版本:

  

主要,次要,修订版本

     

5.1.14409.1005

当我在本地运行该脚本时,如果运行没有问题。但是,尝试在Windows Server 2012 R2上运行此命令将返回上述错误。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,因为该模块已完全为Powershell v5重写。 您需要在该服务器上运行get-help invoke-sqlcmd -full才能查看该版本中的可用方法。

HERE-您可以更好地解释它(“两种产品”部分)

我认为最简单的方法是将服务器上的Powershell升级到5+并使用新的SQL模块。