Excel: comment se connecter à un sqlserver localDB

8

J'ai créé un LocalDB avec lequel je peux travailler dans MS sqlserver management studio 2014, linqpad et visual studio 2013.

Voici la partie de la boîte de dialogue "propriété de connexion" dans SSMS qui affiche le nom du serveur: entrez la description de l'image ici

J'aimerais pouvoir me connecter à cette base de données depuis Excel. Le problème est que l '«Assistant de connexion de données» dans Excel ne parvient pas à se connecter.

Ici, j'ai tapé le même nom de serveur que celui donné à partir des "propriétés de connexion" dans SSMS ....

entrez la description de l'image ici

Et voici l'erreur que j'obtiens ... entrez la description de l'image ici

Des questions:

  • Excel peut-il se connecter à une base de données locale? Je sais qu'il PEUT se connecter aux bases de données SQL Server. Y a-t-il une limitation sur LocalDB qui empêche cela? Je pensais que tout l'intérêt de LocalDB était de permettre le développement sans l'effort de mettre en place une base de données autonome.

  • Existe-t-il un autre moyen de se connecter? Ou mon nom de serveur nécessite-t-il une modification ennuyeuse?

Angelo
la source
1
Essayez .\mssqllocaldb, ou localhost\mssqllocaldb, ou <comptuersIPAddress>\mssqllocaldb. Quel nom de serveur avez-vous utilisé pour vos connexions VS et Linqpad (réussies)?
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007, merci, j'ai copié / collé exactement le nom du serveur trouvé lorsque j'ai ouvert la boîte de dialogue des propriétés de la base de données dans SSMS. Non, allez sur les trois exemples. Le nom du serveur qui fonctionne sur linqpad et SSMS est exactement celui-ci ... (localdb) \ mssqllocaldb
Angelo

Réponses:

6

Quel PITA gratuit!

J'ai pu le faire fonctionner en utilisant l '"Assistant de connexion de données" en suivant ces étapes ....

  1. Sélectionnez "Autre / Avancé" dans l'Assistant de connexion de données, puis cliquez sur "Suivant" . Je pensais que localDB tel que créé par sqlserver express irait comme "SQL Server". Apparemment non! mais je ne comprends pas pourquoi.

entrez la description de l'image ici

  1. Sélectionnez "SQL Server Native Client 11.0" comme fournisseur. OK, je n'avais juste PAS sélectionné "SQL Server" dans l'onglet précédent. Il se trouve également que j'exécute la version 12 de SQL Server Express et qu'il n'y a pas de "12" dans la liste - peut-être que cela fait strictement référence à la version client, avec l'implication subtile que le client 11 peut se connecter au serveur 12? Encore une autre coupe de papier cognitive.

entrez la description de l'image ici

  1. Entrez le même nom de serveur qui fonctionne dans SSMS ou linqpad. Sélectionnez Sécurité intégrée de Windows. Test Connection fonctionne maintenant et il est possible de sélectionner la base de données et de vider une table dans Excel.

entrez la description de l'image ici

Ce n'est pas difficile à faire, mais il ne semble pas y avoir de flux logique, vous devez patauger jusqu'à ce que quelque chose clique.

Angelo
la source
Cher, vous vous connectez à SQL Server 2014, qui vient avec SQLNCLI12, et dans vos captures d'écran, vous avez sélectionné `` Native Client 11 '', ce qui est SQLNCLI11, et pour une raison quelconque, vous n'avez pas le `` Native Client 12 '' qu'Excel recherche pour 2014.
confirmer le
1

Il s'agit de la chaîne de connexion (SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

Oh sur mon PC, j'ai dû utiliser ;Trusted_Connection=Yes, cela pourrait ne pas avoir de sens, car mon ordinateur portable et mon PC exécutent les mêmes versions EXACT de SQLServer et Excel.


Éditer

Je ne peux pas reproduire l'erreur (j'ai même installé SQL Server 2014 sur une machine virtuelle et cela fonctionne toujours). La seule option que vous pourriez ajouter et pourrait vous aider est Provider=SQLNCLI11;OU Provider=SQLNCLI12;vous pouvez savoir quelle version est installée en exécutant sqllocaldb ven ligne de commande.
Cela produirait quelque chose comme:Microsoft SQL Server 2014 (12.0.2000.8)

à confirmer
la source
merci, mais cela donne toujours une erreur. J'ai dû supprimer votre partie "server =" pour éviter d'avoir "parseConnectParams ()" dans la boîte de dialogue d'erreur. Quand je l'ai fait, cela a donné la même erreur que celle que j'ai eue auparavant.
Angelo
@ Angelo J'ai mis à jour ma réponse, veuillez faire jusqu'au résultat une fois que vous essayez.
confirmer