Excel: Como conectar-se a um sqlserver localDB

8

Criei um LocalDB com o qual posso trabalhar no MS sqlserver management studio 2014, linqpad e visual studio 2013.

Aqui está a parte da caixa de diálogo "propriedade da conexão" no SSMS, que mostra o nome do servidor: insira a descrição da imagem aqui

Eu gostaria de poder conectar-me a esse banco de dados no Excel. O problema é que o "Assistente para Conexão de Dados" no Excel falha na conexão.

Aqui, digitei o mesmo nome de servidor fornecido em "propriedades de conexão" no SSMS ....

insira a descrição da imagem aqui

E aqui está o erro que recebo ... insira a descrição da imagem aqui

Questões:

  • O Excel pode se conectar a um localDB? Eu sei que ele pode se conectar a bancos de dados sql-server. Existe alguma limitação sobre o LocalDB que impede isso? Eu pensei que o objetivo principal do LocalDB era permitir o desenvolvimento sem o esforço de configurar um banco de dados independente.

  • Existe uma maneira alternativa de se conectar? Ou o nome do meu servidor requer alguma modificação irritante?

Angelo
fonte
1
Tente .\mssqllocaldb, ou localhost\mssqllocaldb, ou <comptuersIPAddress>\mssqllocaldb. Qual nome do servidor você usou para suas conexões VS e Linqpad (bem-sucedidas)?
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007, obrigado, copiei / colei exatamente o nome do servidor encontrado quando abri a caixa de diálogo de propriedades do banco de dados no SSMS. Não vá nos três exemplos. O nome do servidor que funciona em LINQPad e SSMS é exatamente isso ... (LocalDB) \ mssqllocaldb
Angelo

Respostas:

6

Que PITA gratuito!

Consegui fazê-lo funcionar usando o "Assistente para Conexão de Dados" seguindo estas etapas ....

  1. Selecione "Outros / Avançado" no Assistente para conexão de dados e pressione "próximo" . Eu pensei que o localDB criado pelo sqlserver express iria como "SQL Server". Aparentemente não! embora eu não possa entender o porquê.

insira a descrição da imagem aqui

  1. Selecione "SQL Server Native Client 11.0" como provedor. OK, acabei de NÃO selecionar "SQL Server" na guia anterior. Também estou executando a versão 12 do sql server express e não há "12" na lista - talvez esteja se referindo estritamente à versão do cliente, com a sutil implicação de que o cliente 11 pode se conectar ao servidor 12? Mais um corte cognitivo em papel.

insira a descrição da imagem aqui

  1. Digite o mesmo nome do servidor que funciona no SSMS ou no linqpad. Selecione segurança integrada do Windows. A Conexão de Teste agora funciona e é possível selecionar o banco de dados e despejar uma tabela no Excel.

insira a descrição da imagem aqui

Não é difícil fazer isso, mas não parece haver nenhum fluxo lógico para você ter que se debater até que algo clique.

Angelo
fonte
Caro, você está se conectando ao SQL Server 2014, que vem com SQLNCLI12, e nas suas capturas de tela, você selecionou 'Native Client 11', que é SQLNCLI11, e por algum motivo, você não tem o 'Native Client 12' que o Excel procura para 2014.
a confirmar
1

Esta é a cadeia de conexão (SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

Ah, no meu PC, eu tive que usar ;Trusted_Connection=Yes, pode não fazer sentido, pois meu laptop e PC estão executando exatamente as mesmas versões do SQLServer e Excel.


Editar

Não consigo reproduzir o erro (até instalei o SQL Server 2014 em uma VM e ainda funciona). A única opção que você pode adicionar e pode ajudá-lo é Provider=SQLNCLI11;OU Provider=SQLNCLI12;você pode descobrir qual versão está instalada executando sqllocaldb vna linha de comando.
Isso produziria algo como:Microsoft SQL Server 2014 (12.0.2000.8)

tbc
fonte
obrigado, mas ainda dá um erro. Eu tive que remover sua parte "server =" para evitar "parseConnectParams ()" na caixa de diálogo de erro. Quando fiz isso, deu o mesmo erro que obtive antes.
Angelo
@ Angelo Eu atualizei minha resposta, por favor, faça até o resultado depois de tentar.
a confirmar