无法 运行 在 PS1 文件中调用-Sqlcmd,但可以在控制台上调用
Cannot run Invoke-Sqlcmd in a PS1 file but can on the console
我目前在一台装有 SQL 服务器 2008 的机器上,根据这个问题 (How to execute .sql file using powershell?),我安装了 powershell 管理单元以与 SQL 服务器交互。
问题是现在我已经安装了它,我可以运行像这样从命令行调用-Sqlcmd。
Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008';
但如果我将那行放在 PS1 文件中 运行 并尝试 运行 就这样
powershell ./runSQLscript.ps1
我收到这个错误
The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the
name, or if a path was included, verify that the path is correct and
try again. At D:\TEMP\powershellTests\runSQLscript.ps1:1 char:14
+ Invoke-Sqlcmd <<<< -inputfile "myTestFile.sql" -serverinstance '.\sql2008';
+ CategoryInfo : ObjectNotFound: (Invoke-Sqlcmd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
在您的 PS1 中,您需要 Add-PSSnapin
并加载 SQL 管理单元。
每个 Powershell window 都是一个新环境,其中的模块和管理单元尚未加载。
我目前在一台装有 SQL 服务器 2008 的机器上,根据这个问题 (How to execute .sql file using powershell?),我安装了 powershell 管理单元以与 SQL 服务器交互。
问题是现在我已经安装了它,我可以运行像这样从命令行调用-Sqlcmd。
Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008';
但如果我将那行放在 PS1 文件中 运行 并尝试 运行 就这样
powershell ./runSQLscript.ps1
我收到这个错误
The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At D:\TEMP\powershellTests\runSQLscript.ps1:1 char:14 + Invoke-Sqlcmd <<<< -inputfile "myTestFile.sql" -serverinstance '.\sql2008'; + CategoryInfo : ObjectNotFound: (Invoke-Sqlcmd:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
在您的 PS1 中,您需要 Add-PSSnapin
并加载 SQL 管理单元。
每个 Powershell window 都是一个新环境,其中的模块和管理单元尚未加载。