我目前在使用SQL Server 2008的计算机上,根据此问题(How to execute .sql file using powershell?),我已经安装了powershell管理单元以与SQL服务器进行交互。
问题是现在我安装了它,我可以从命令行运行Invoke-Sqlcmd。
Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008';
但如果我将该行放入PS1文件中运行并尝试像这样运行
powershell ./runSQLscript.ps1
我收到此错误
术语' Invoke-Sqlcmd'不被识别为cmdlet的名称, 功能,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确 再试一次。在D:\ TEMP \ powershellTests \ runSQLscript.ps1:1 char:14 + Invoke-Sqlcmd<<<< -inputfile" myTestFile.sql" -serverinstance'。\ sql2008&#39 ;; + CategoryInfo:ObjectNotFound :( Invoke-Sqlcmd:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
答案 0 :(得分:3)
在PS1中,您需要Add-PSSnapin
并加载SQL管理单元。
每个Powershell窗口都是一个尚未加载模块和管理单元的新环境。