【发布时间】:2019-10-17 00:24:55
【问题描述】:
我有一个 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 版本:
Major.Minor.Build.Revision
5.1.14409.1005
当我在本地运行此脚本时,如果运行没有问题。但是,尝试在 Windows Server 2012 R2 上运行它会返回上述错误。
【问题讨论】:
-
$sqlCommand是文字命令还是.sql文件的路径?如果它是一个命令,请尝试一个比您希望执行的命令更简单的命令,以进行测试。命令格式是否正确?如果你重新排列-query和-OutputAs会发生什么?如果您完全删除-OutputAs,您是否会以 DataRows 的默认格式获得结果? -
当你运行
get-command Invoke-Sqlcmd时你只得到一个结果吗?那是什么版本?我有一个没有该参数的旧版本。我有 PSv5,如果它是标准的,这对我来说就是新闻,因为我必须为我导入一个模块。 -
Cmdlet | Invoke-Sqlcmd | 21.1.18121 | SqlServer
标签: sql-server powershell