【问题标题】:Cannot run Invoke-Sqlcmd in a PS1 file but can on the console无法在 PS1 文件中运行 Invoke-Sqlcmd,但可以在控制台上运行
【发布时间】:2015-08-18 10:51:55
【问题描述】:

我目前在一台装有 SQL Server 2008 的机器上,根据这个问题 (How to execute .sql file using powershell?),我安装了 powershell 管理单元以与 SQL Server 交互。

问题是现在我已经安装好了,我可以像这样从命令行运行 Invoke-Sqlcmd。

Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008';

但如果我将该行放在 PS1 文件中运行并尝试像这样运行它

powershell ./runSQLscript.ps1

我收到此错误

“Invoke-Sqlcmd”一词未被识别为 cmdlet 的名称, 函数、脚本文件或可运行的程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确并 再试一次。在 D:\TEMP\powershellTests\runSQLscript.ps1:1 char:14 + 调用-Sqlcmd

【问题讨论】:

  • 在您的 PS1 文件中,您还需要 Add-PSSnapin SQL 管理单元,以便 PowerShell 知道在使用之前加载此函数。
  • @Bluecakes - 是的,修复了它!请添加为答案。好的,所以 add-snapins 不是全局命令并且与它运行的上下文相关吗?

标签: sql-server powershell sql-server-2008-r2 sqlcmd


【解决方案1】:

在您的 PS1 中,您需要 Add-PSSnapin 并加载 SQL 管理单元。

每个 Powershell 窗口都是一个尚未加载模块和管理单元的新环境。

【讨论】:

    猜你喜欢
    • 2017-08-03
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多