无法在PS1文件中运行Invoke-Sqlcmd,但可以在控制台

时间:2015-06-04 01:24:04

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

我目前在使用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

1 个答案:

答案 0 :(得分:3)

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

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