如何使用Invoke-Sqlcmd连接到SQL Server LocalDB?

Gia*_*rdi 9 powershell sql-server-2012 localdb sqlps

我有sqlcmd.exeSQLServer 2008和SQLServer 2012:

PS C:\> Get-Command sqlcmd.exe

Definition
----------
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE
Run Code Online (Sandbox Code Playgroud)

通过修改$env:PATH我强制使用sqlcmd.exeSQL Server 2012:

PS C:\> $env:PATH = ($env:PATH -split ";" | Where-Object { $_ -notlike "*\Microsoft SQL Server\100\*" }) -join ";"
PS C:\> Get-Command sqlcmd.exe

Definition
----------
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE
Run Code Online (Sandbox Code Playgroud)

LocalDB的默认实例已启动并正在运行,并由当前用户拥有:

PS C:\> sqllocaldb i v11.0
Name:               v11.0
Version:            11.0.2318.0
Shared name:
Owner:              DOMAIN\me
Auto-create:        Yes
State:              Running
Last start time:    12/06/13 18:17:57
Instance pipe name: np:\\.\pipe\LOCALDB#08EDBEF0\tsql\query
Run Code Online (Sandbox Code Playgroud)

现在,我可以执行命令(localdb)\v11.0使用sqlcmd.exe

PS C:\> sqlcmd.exe -S "(localdb)\v11.0" -Q "select 1"

-----------
          1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试相同的时候Invoke-Sqlcmd我得到一个连接错误:

PS C:\> Import-Module sqlps
PS C:\> Invoke-Sqlcmd -ServerInstance "(localdb)\v11.0" -Query "select 1"
Invoke-Sqlcmd : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能Invoke-Sqlcmd连接到(localdb)\v11.0

mrd*_*nny -2

我猜测 invoke-sqlcmd 不知道“(localdb)”是什么。尝试使用 localhost 代替。