无法从PowerShell正确调用sqlcmd

时间:2012-04-06 17:18:11

标签: 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

我尝试了invoke-sqlcmd,但我收到错误“术语'invoke-sqlcmd'未被识别为cmdlet,函数,脚本文件或可操作程序的名称”

关于下面的评论,我已经加载了所需的snapins。这确实有帮助,但我现在收到此错误。 “Invoke-sqlcmd:参数无法处理,因为参数名称's'不明确。

如果我把它放在单引号中......

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

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

2 个答案:

答案 0 :(得分:2)

您必须先从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"

您还可以使用MSDN文档

答案 1 :(得分:0)

转到

  • Windows资源管理器
  • 右键单击计算机
  • 属性
  • 高级系统设置
  • 环境变量

确保PSModulePath设置为以下字符串。

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