Como se conectar ao LocalDB no Visual Studio Server Explorer?

240

Não acredito que não consegui encontrar uma solução para isso após uma hora de pesquisa. Estou seguindo este artigo no Entity Framework 6.0, que fornece uma explicação simples sobre o Code First. Criei o projeto e instalei o pacote EF Nuget mais recente para o projeto compilar. Também verifiquei que tenho o Microsoft SQL Server 2012 Express LocalDB instalado que acompanha o Visual Studio 2013. Não tenho outras instâncias do SQL instaladas no meu computador local. O programa é executado e as entradas são adicionadas ao banco de dados e produzidas no console. Mas quando o artigo diz "verifique seu localdb", ele não diz como! Não vejo nenhum arquivo '.mdf' ou '.ldf' criado na pasta do projeto. Eu tentei de todas as maneiras conectar o Visual Studio ' s Server Explorer para LocalDB. O assistente não pode localizar(localdb)ou não consigo encontrar nenhum provedor no Server Explorer para aceitar a seqüência de conexão, como (localdb)\v11.0;Integrated Security=true;já vi várias vezes no StackOverflow, mas nenhuma resposta funciona ou está marcada como resposta. Por favor, ajude, isso não precisa ser tão frustrante!

Quais são as etapas para conectar o Visual Studio Server Explorer ao LocalDB?

orad
fonte
70
Costumo ter pena das pessoas que estão apenas entrando neste negócio. 20 anos atrás, as ferramentas eram realmente muito mais fáceis de usar. A documentação também agora é pouco adequada e, na maioria dos casos, menor que. Agora vejo "documentação" agora no MSDN que simplesmente explica um método, como "foo" -> "Este é o método foo". Sério, Microsoft? O que aconteceu com os escritores técnicos? O que aconteceu com o Books Online (de verdade)?
Pittsburgh DBA
1
Verifique se você está executando o Visual Studio como administrador.
Darren Griffith
4
Se você estiver bem em usar o SQL Server Object Explorer do Visual Studio em vez do Server Explorer . É solução mais simples (menos de configuração manual), veja a minha resposta: stackoverflow.com/a/41906391/3645638
Svek
Minha instalação cria o banco de dados no sqlserverexpress e não no localdb. O que causa isso?
Jason Cheng

Respostas:

282

No Visual Studio 2012, tudo o que eu precisava fazer era entrar:

(localdb)\v11.0

O Visual Studio 2015 e o Visual Studio 2017 foram alterados para:

(localdb)\MSSQLLocalDB

como o nome do servidor ao adicionar uma Microsoft SQL Server Datafonte em:

View/Server Explorer/(Right click) Data Connections/Add Connection

e os nomes dos bancos de dados foram preenchidos. Não precisei executar todas as outras etapas da resposta aceita, embora seria bom se o nome do servidor estivesse disponível automaticamente na caixa de combinação do nome do servidor.

Você também pode procurar os nomes do banco de dados LocalDB disponíveis em sua máquina usando:

View/SQL Server Object Explorer.
O RationalDev gosta do GoFundMonica
fonte
4
Sim, é isso que deve funcionar pela primeira vez. Mas, se não, as etapas da resposta aceita devem iniciar o serviço e fazê-lo funcionar.
orad 13/10/14
Talvez o SQL Server Object Explorer o tenha iniciado para mim, pois eu o usei para descobrir qual o nome do servidor que o Entity Framework havia usado. Eu tinha encontrado esta pergunta, mas foi tipo de assustado tentando a resposta que eu estava esperando por algo mais simples e não tinha lê-lo totalmente como eu pensei que eu tinha que usar o nome do pipe :)
RationalDev gosta GoFundMonica
Estou apenas cego para os detalhes, ou é extremamente frustrante que configurar isso não seja mais intuitivo? Seja em 2012 ou 2015, parece que eles estão quase escondendo coisas assim em todo o IDE.
Rex_C
obrigado. Eu estava destruindo meu cérebro até descobrir sua resposta.
Alexandre N.
5
Por que Microsoft, por que? Por que mudar o nome e não atualizar sua documentação? (Obrigado pelo caminho do VS 2015)
Thibault D.
256

OK, respondendo à minha própria pergunta.

Etapas para conectar o LocalDB ao Visual Studio Server Explorer

  1. Abrir prompt de comando
  2. Corre SqlLocalDB.exe start v11.0
  3. Corre SqlLocalDB.exe info v11.0
  4. Copie o nome do canal da instância que começa com np: \ ...
  5. No Visual Studio, selecione FERRAMENTAS> Conectar-se ao Banco de Dados ...
  6. Para Nome do servidor, digite (localdb)\v11.0. Se não funcionou, use o nome do canal da Instância que você copiou anteriormente. Você também pode usar isso para se conectar ao SQL Management Studio.
  7. Selecione o banco de dados na próxima lista suspensa
  8. Clique OK

insira a descrição da imagem aqui

orad
fonte
86
Hoje em dia, quase todas as ações na plataforma MS envolvem alguma mágica ou conhecimento prévio memorizado .... quem apoiará essas coisas em 5 anos quando todo um novo conjunto de magias estiver em vigor?
23414
34
Obrigado! Apenas para adicionar a esta excelente resposta (e excelente pergunta): SqlLocalDb infoirá listar todos os nomes de servidores. No meu caso, após a mágica do primeiro código EF, meu banco de dados acabou MSSQLLocalDBnão v11.0, então entrei (localdb)\MSSQLLocalDBna caixa de diálogo Adicionar conexão.
biscuit314
1
SqlLocalDb.exe aparece duas vezes no caminho do meu sistema - primeiro em C: \ Arquivos de Programas \ Microsoft SQL Server \ 110 \ Tools \ Binn e depois em C: \ Arquivos de Programas \ Microsoft SQL Server \ 120 \ Tools \ Binn. Portanto, apenas a versão anterior será chamada! Eu tenho o VS2012 e o VS 2013 instalados.
John Pankowicz
2
Acredito que mais e mais pessoas estão gravitando sobre outras linguagens de programação da Microsoft. Esse material de configuração simples e o local de arquivo se tornou mais difícil do que qualquer outro idioma. Se eles não têm nada.
JustJohn
4
Estive coçando a cabeça a tarde toda por causa disso. Por que eles têm que torná-lo tão complicado, quando costumava ser tão fácil? Obrigado pela ajuda.
George Williams
71

Selecione em:

  1. Fonte de dados: Microsoft SQL Server (SqlClient)
  2. Nome do servidor: (localdb)\MSSQLLocalDB
  3. Faça logon no servidor: Use Windows Authentication

Pressione o botão Atualizar para obter o nome do banco de dados :)

Captura de tela

Kaps
fonte
1
de alguma forma, foi a única resposta que funcionou em 28/04/2015
maazza
4
mesmo aqui vs2015 .. Esta foi a resposta .. Eu acho que eles renomearam localDb?
Punkouter
1
Este foi feito para o VS2015 RC no Win 8.1.
ScottG 27/05
Sobre o nome do servidor: stackoverflow.com/questions/27197359/…
kr85
Funciona no vs2017 também.
Toke Breer-Mortensen
25

Use Objeto SQL Server Explorer (SSOX) Em vez

Diferentemente das outras respostas, essa abordagem usa:
- Nenhum comando especial.
- Sem configurações complicadas.
Basta usar o SQL Server Object Explorer

É bem direto ...

  • No menu Exibir , abra o SQL Server Object Explorer .

1

  • Clique com o botão direito na {YourTableName}tabela> View Designer

dois

Feito.

Svek
fonte
16

Funcionou para mim.

  1. Abrir prompt de comando
  2. Execute o "SqlLocalDB.exe start"
  3. Resposta do sistema "Instância LocalDB" mssqllocaldb "iniciada."
  4. No VS , View / Server Explorer / (clique com o botão direito do mouse) em Data Connections / Add Connection
    • Fonte de dados: Microsoft SQL Server (SqlClient)
    • Nome do servidor: (localdb) \ MSSQLLocalDB
    • Faça logon no servidor: use a autenticação do Windows
  5. Pressione "Testar conexão" e depois em OK.
Ader Hwang
fonte
8

O seguinte funciona com o Visual Studio 2017 Community Edition no Windows 10 usando o SQLServer Express 2016.

Abra um PowerShell, verifique como ele é chamado SqlLocalDB.exe infoe se está em execução SqlLocalDB.exe info NAME. Aqui está o que parece na minha máquina:

> SqlLocalDB.exe info
MSSQLLocalDB
> SqlLocalDB.exe info MSSQLLocalDB
Name:               mssqllocaldb
Version:            13.0.1601.5
Shared name:
Owner:              DESKTOP-I4H3E09\simon
Auto-create:        Yes
State:              Running
Last start time:    4/12/2017 8:24:36 AM
Instance pipe name: np:\\.\pipe\LOCALDB#EFC58609\tsql\query
>

Se não estiver em execução, é necessário iniciá-lo SqlLocalDB.exe start MSSQLLocalDB. Quando está em execução, você vê o Instance pipe name:que começa com np:\\. Copie essa cadeia de tubulação nomeada. No VS2017, abra a exibição Server Explorere crie uma nova conexão do tipo Microsoft SQL Server (SqlClient)(não se deixe enganar pelos outros tipos de arquivos que você deseja para o tipo de conexão completa) e defina Server name:como o nome do canal de instância que você copiou do PowerShell.

Também configurei o Connect to databasemesmo banco de dados que estava na cadeia de conexão que estava funcionando no meu projeto Dotnet Core / Entity Framework Core que foi configurado usando dotnet ef database update.

Você pode efetuar login e criar um banco de dados usando a sqlcmdstring de pipe nomeada e:

sqlcmd -S np:\\.\pipe\LOCALDB#EFC58609\tsql\query 1> create database EFGetStarted.ConsoleApp.NewDb; 2> GO

Há instruções sobre como criar um usuário para seu aplicativo em https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility

simbo1905
fonte
7

O Visual Studio 2015 RC possui o LocalDb 12 instalado, instruções semelhantes às anteriores, mas ainda não devem ser necessárias para saber 'mágica'; antes de usá-las manualmente, a instância padrão deveria estar ativada ... Rant complete, no for solution :

cmd> sqllocaldb start

Qual exibirá

LocalDB instance "MSSQLLocalDB" started.

O nome da sua instância pode ser diferente. De qualquer maneira, vá para o VS e abra o Server Explorer, clique com o botão direito do mouse em Conexões de Dados, escolha Adicionar, escolha SQL Server, no tipo de nome do servidor:

(localdb)\MSSQLLocalDB

Sem inserir um nome de banco de dados, clique em 'Testar Conexão'.

OzBob
fonte
6

Correção não funciona.

Exatamente como na ilustração do exemplo, todas essas etapas fornecem apenas acesso aos bancos de dados do "sistema" e nenhuma opção para selecionar os bancos de dados de usuários existentes que você deseja acessar.

A solução para acessar uma instância local do servidor Microsoft SQL (não Express Edition) reside no lado do SQL Server:

  1. Abra a caixa de diálogo Executar (WinKey + R)
  2. Tipo: "services.msc"
  3. Selecione Navegador do SQL Server
  4. Clique em Propriedades
  5. Altere "desativado" para "Manual" ou "Automático"
  6. Quando o botão de serviço "Iniciar" for ativado, clique nele.

Feito! Agora você pode selecionar o SQL Server local na lista Nome do servidor em Propriedades da conexão.

alejandrob
fonte
7
Este StackOverflow Q / A é sobre LocalDB . Eu acho que sua resposta é sobre ativar outras instâncias do SQL.
orad 25/09/14
Eu tentei essa correção no ambiente local e ele faz o FIX conforme o esperado para a pergunta original postada, não o que você pensa que faz. Não assuma que ambiente Enterprise Edition = Enterprise. Alguns de nós usam essa edição para desenvolvimento local em uma máquina de grupo de trabalho.
Alejandrob
Mesmo que eu ainda tivesse que entrar (localdb) em vez de usar o navegador, isso realmente o corrigiu para mim, por isso responde bem à pergunta.
precisa
4

Execute o CMD como administrador.

  1. no menu Iniciar 'cmd' - aguarde até encontrá-lo.
  2. Clique com o botão direito do mouse em cmd e selecione abrir como administrador
  3. tipo: cd C: \ Arquivos de Programas \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. tipo: SqlLocalDB start
  5. agora digite: SqlLocalDB info
  6. Mostra as instâncias sql em execução disponíveis ... escolha o que deseja ...
  7. para saber mais sobre o tipo de instância: SqlLocalDB info instanceName

  8. agora do VS, você pode configurar sua conexão No VS , Exibir / Server Explorer / (clique com o botão direito do mouse) em Conexões de dados / Adicionar fonte de dados de conexão: Microsoft SQL Server (SqlClient) Nome do servidor: (localdb) \ MSSQLLocalDB Faça logon no servidor: Use Windows Autenticação Pressione "Testar Conexão" e, em seguida, OK.

  9. tarefa concluída

guestDoug
fonte
3

A maneira mais rápida no Visual Studio 2017 é ir em Ferramentas -> SQL Server -> Nova consulta. Escolha em Bancos de dados locais e escolha o nome do banco de dados desejado na parte inferior.

Caminho alternativo

O nome do servidor do Visual Studio 2017 é:

(localdb)\MSSQLLocalDB

Adicione a nova conexão usando o menu Ferramentas -> Conectar ao banco de dados ...

Samuel
fonte
Se você não instalar SQLExpress a uma instância padrão, você também pode tentar ... '(LocalDB)'
Jason Geiger
1

Segui as etapas acima, mas esqueci de instalar o SQL Server 2014 LocalDB antes da configuração do Visual Studio 2015.

Meus passos são os seguintes:

  1. Instale o SQL Server 2014 LocalDB;
  2. Abra o Visual Studio 2015 e, em seguida, o SQL Server Object Explorer ;
  3. Encontre seu LocalDB sob a tag SQL Server.

Espero que isso ajude alguém.

Mondi
fonte
0

Cenário: Windows 8.1, VS2013 Ultimate, SQL Express Instalado e em execução, Navegador do SQL Server desativado. Isso funcionou para mim:

  1. Primeiro, ativei o SQL Server Browser em serviços.
  2. No Visual Studio: Abra o Console do Gerenciador de Pacotes e digite: Enable-Migrations ; Digite Enable-Migrations -ContextTypeName YourContextDbName que criou a pasta Migrations no VS.
  3. Dentro da pasta Migrações, você encontrará o arquivo "Configuration.cs", ative as migrações automáticas por: AutomaticMigrationsEnabled = true;
  4. Execute seu aplicativo novamente, o ambiente cria um DefaultConnection e você verá as novas tabelas do seu contexto. Essa nova conexão aponta para o localdb. A cadeia de conexão criada mostra: Fonte de dados = (LocalDb) \ v11.0 ... (mais parâmetros e caminho para o arquivo mdf criado)

Agora você pode criar uma nova conexão com o Nome do servidor: (LocalDb) \ v11.0 (atualização atualizada) Conecte-se a um banco de dados: Selecione seu novo banco de dados na lista suspensa.

Espero que ajude.

Armando S
fonte
-1

Com o SQL Server 2017 e o Visual Studio 2015, eu usei localhost\SQLEXPRESS

insira a descrição da imagem aqui

Ben S
fonte