Conectar-se ao LocalDB via SQLCMD no PowerShell


10

Estou tentando acessar o servidor "localdb \ MSSQLLocalDB" no meu computador através do PowerShell com o utilitário SQLCMD. Estou usando o PowerShell v5, .NET v5.0 e o nome do servidor é (localdb)\MSSQLLocalDBquando eu me conecto a ele no Microsoft SQL Server Management Studio 2014.

PS C:\> sqlcmd -S localdb\MSSQLLocalDBe PS C:\> sqlcmd -S .\localdb\MSSQLLocalDBresultar neste erro:

Sqlcmd: Erro: Driver ODBC da Microsoft 11 para SQL Server: Interfaces de rede do SQL Server: Erro ao localizar servidor / instância especificada [xFFFFFFFF].

Consultei o nome do servidor no Management Studio SELECT @@ServerNamee o usei após o -Scomando acima e obtive o mesmo erro.

PS C:\> sqlcmd -S localdb dá este erro:

Sqlcmd: Erro: Driver ODBC da Microsoft 11 para SQL Server: Provedor de Pipes Nomeados: Não foi possível abrir uma conexão com o SQL Server [53]

Outras notas: Consigo me conectar ao servidor e trabalhar com um banco de dados chamado testdb01 em um aplicativo de console C # usando System.Data.SqlClientesta cadeia de conexão:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"

Respostas:


8

A caixa do nome da instância não importa.

Você precisa tentar:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

A parte "localdb" precisa estar entre parênteses, pois é uma sintaxe especial que aponta para uma API específica do SQL Server Express LocalDB que permite a inicialização automática da instância ao ser referenciada em uma cadeia de conexão. O nome completo da instância precisa estar entre aspas duplas. A linha de comando mostrada acima funciona para mim, pelo menos fora do PowerShell.


A inclusão (localdb)de parênteses parece separá-lo como um comando e fornece o seguinte erro: O termo 'localdb' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável.
— jmk22

@ jmk22 Então tente colocar o nome completo do servidor entre aspas: -S "(localdb)\MSSQLLocalDB". Se isso não funcionar, podemos tentar escapar do parêntese. Mas de alguma forma essas parênteses precisam estar lá.
— Solomon Rutzky

11
As citações fizeram isso, obrigado! Editei sua resposta para refletir isso.
— jmk22
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.