Sql server 调用Sqlcmd在ISE中不可用,但可在传统的Powershell主机中工作

Sql server 调用Sqlcmd在ISE中不可用,但可在传统的Powershell主机中工作,sql-server,powershell,Sql Server,Powershell,我在调用Sqlcmd时遇到了一些问题 从普通的powershell控制台,一切正常。但我无法从ISE使用它 我可以确认加载项已加载 >Get-PSSnapin SqlServerCmdletSnapin100 Name : SqlServerCmdletSnapin100 > add-PSSnapin SqlServerCmdletSnapin100 Add-PSSnapin : Cannot add ... SqlServerCmdletSnapin100 ... i

我在调用Sqlcmd时遇到了一些问题

从普通的powershell控制台,一切正常。但我无法从ISE使用它

我可以确认加载项已加载

>Get-PSSnapin SqlServerCmdletSnapin100
Name        : SqlServerCmdletSnapin100
> add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin : Cannot add ... SqlServerCmdletSnapin100 ... it is already added.
当我尝试使用它时

> Invoke-Sqlcmd
The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdlet, function ...

关于这个问题有什么想法吗?

我不知道。我得到一个不同的错误,因为我已将ISE设置为使用4.0运行


Invoke Sqlcmd:混合模式程序集是根据运行时版本“v2.0.50727”构建的,如果没有其他配置信息,无法在4.0运行时中加载。

不知道。我得到一个不同的错误,因为我已将ISE设置为使用4.0运行


Invoke Sqlcmd:混合模式程序集是根据运行时版本“v2.0.50727”生成的,如果没有其他配置信息,无法在4.0运行时中加载。

是否还添加了提供程序管理单元:

在sqlserverprovidersnapin100中添加PsSnapin


这两者都是完整功能所必需的。

您是否也添加了提供程序管理单元:

在sqlserverprovidersnapin100中添加PsSnapin


两者都是完整功能所必需的。

我看不到您看到的行为。在64位Windows上,SqlServerCmdletSnapin100管理单元似乎仅为64位。您是否有可能尝试从32位ISE使用它?检查标题栏。如果它显示“Windows PowerShell 2.0(x86)”,那么您正在运行32位ISE?

我看不到您看到的行为。在64位Windows上,SqlServerCmdletSnapin100管理单元似乎仅为64位。您是否有可能尝试从32位ISE使用它?检查标题栏。如果它说“Windows PowerShell 2.0(x86)”,那么您正在一个脚本中运行32位ISE?

,该脚本需要
SqlServerCmdletSnapin100
我使用了以下解决方法:

$Name = SqlServerCmdletSnapin100
$Snapin = Get-PSSnapin -Name $Name -ErrorAction SilentlyContinue
if($Snapin -ne $null) {
    Remove-PSSnapin $Name 
}
Add-PSSnapin $Name

在一个需要
SqlServerCmdletSnapin100
的脚本中,我使用了以下解决方法:

$Name = SqlServerCmdletSnapin100
$Snapin = Get-PSSnapin -Name $Name -ErrorAction SilentlyContinue
if($Snapin -ne $null) {
    Remove-PSSnapin $Name 
}
Add-PSSnapin $Name

在x86和64位上进行测试。同样的问题。也许这只是我的机器的问题。在x86和64位上测试。同样的问题。也许这只是我的机器的问题。