无法从powershell正确调用sqlcmd

无法从powershell正确调用sqlcmd,sql,powershell,sqlcmd,Sql,Powershell,Sqlcmd,我让这个sqlcmd代码段成批工作,但当我转换到powershell时,它坏了。这就是我试图使用powershell调用的内容 Sqlcmd -S localhost\instance -d database -U username -P password -i "sqlQuery.sql" -s "," > \sqlOutput.csv -I -W -k 我尝试调用sqlcmd,但出现错误“术语‘invoke sqlcmd’无法识别为cmdlet、函数、脚本文件或可操作程序的名称” 关

我让这个sqlcmd代码段成批工作,但当我转换到powershell时,它坏了。这就是我试图使用powershell调用的内容

Sqlcmd -S localhost\instance -d database -U username -P password -i "sqlQuery.sql" -s "," > \sqlOutput.csv -I -W -k
我尝试调用sqlcmd,但出现错误“术语‘invoke sqlcmd’无法识别为cmdlet、函数、脚本文件或可操作程序的名称”

关于下面的评论,我已经加载了所需的管理单元。这确实有帮助,但我现在得到了这个错误。调用sqlcmd:无法处理参数,因为参数名称“s”不明确

如果我把它放在单引号里

invoke-Sqlcmd '-S localhost\instance -d database -U username -P password -i "sqlQuery.sql" -s "," > \sqlOutput.csv -I -W -k'

我得到一个错误“在建立到sql server的连接时发生了与网络相关或特定于实例的错误。这对我来说没有意义,因为我在这里使用的相同凭据(在同一个框中)在从批处理调用时起作用。

您必须首先从powershell或命令提示符调用sqlps.exe(假设已安装powershell的SQL Server管理单元)

完成此操作后,请执行
get help Invoke Sqlcmd
,找到解决方法

对于您的问题,不是-S,而是-ServerInstance

 PS SQLSERVER:\> Invoke-Sqlcmd -ServerInstance "srvrName" -Database "master" -Username "user123" -Password "x$34fth" 
-InputFile "C:\Users\testUser\Desktop\test.sql" | Out-File "C:\Users\testUser\Desktop\out.txt"
您也可以使用文档

转到

  • Windows资源管理器
  • 右键单击计算机
  • 性质
  • 高级系统设置
  • 环境变量
确保PSModulePath设置了以下字符串


C:\Program Files(x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules

要调用Invoke Sqlcmd,必须已加载SQL管理单元。Sqlcmd.exe和Invoke Sqlcmd的参数不同。有关参数列表和示例用法,请参阅帮助调用sqlcmd-full