【问题标题】:Unable to properly call sqlcmd from powershell无法从 powershell 正确调用 sqlcmd
【发布时间】:2012-04-06 17:18:10
【问题描述】:

我让这个 sqlcmd sn-p 批量工作,但是当我转换为 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、函数、脚本文件或可运行程序的名称”

关于下面的评论,我已经加载了所需的管理单元。这确实有帮助,但我现在遇到了这个错误。 "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 的连接时发生与网络相关或特定于实例的错误。这对我来说没有意义,因为我在这里使用的相同凭据(在同一个盒子上)在以下情况下工作从批处理中调用。

【问题讨论】:

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

标签: sql powershell sqlcmd


【解决方案1】:

您必须首先从 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 文档

【讨论】:

    【解决方案2】:

    转到

    • Windows 资源管理器 
    • 右击电脑
    • 属性 
    • 高级系统设置 
    • 环境变量

    确保使用以下字符串设置 PSModulePath。

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

    【讨论】:

      猜你喜欢
      • 2019-06-05
      • 2012-09-13
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多