web-dev-qa-db-fra.com

Chaînes de connexion SQL Server - point (".") Ou "(local)" ou "(localdb)"

J'ai récemment dû installer SQL Server et restaurer une base de données sur 2 ordinateurs portables, le premier m'a pris quelques jours pour comprendre, le second, je suis toujours en difficulté.

Sur les deux, j'obtenais cette erreur ici:

Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server)

Je comprends toujours le deuxième.

J'ai effectué de nombreuses recherches et suivi toutes les étapes répertoriées sur StackOverflow et d'autres sites, telles que la vérification de SQL Server TCP et des canaux nommés en cours d'exécution, garantissant que SQL Server autorisait les connexions à distance, et toutes les autres étapes de dépannage que j'ai pu trouver.

À la fin, j'ai découvert que je venais de saisir la chaîne de connexion incorrectement sur le premier ordinateur portable. J'essayais d'utiliser (localdb)\MSSQLSERVER2012 (ou quelque chose comme ça) comme il est dit de le faire sur de nombreux sites. Il a commencé à fonctionner lorsque j'ai utilisé .\MSSQLSERVER2012. Je pensais qu'ils pointeraient tous vers le même endroit mais évidemment pas.

Je veux vraiment éviter à nouveau ce problème et trouver comment installer mon deuxième ordinateur portable. Comment savoir si je dois utiliser .\SQLSERVER2012, (local)\SQLSERVER2012, (localdb)\SQLSERVER2012, etc? Existe-t-il un moyen simple de le découvrir en utilisant un outil de ligne de commande comme SqlLocalDb? Et comment est-ce mis en place en premier lieu?

31
Owen

. et (local) et YourMachineName sont tous équivalents, se référant à votre propre machine.

(LocalDB)\instance est SQL Server 2012 Express uniquement.

Les autres parties dépendent de la façon dont vous installez - si vous installez avec un nom d'instance - alors vous devez épeler ce nom d'instance (SQL Server Express utilise par défaut le SQLEXPRESS nom d'instance, tandis que d'autres éditions de SQL Server essaieront d'utiliser l'instance par défaut sans nom spécial).

Donc, pour un SQL Server "normal" installé avec toutes les options par défaut sur votre machine locale, utilisez

.    or   (local)     or          YourMachineName

Pour SQL Server Express installé avec tous les paramètres par défaut, utilisez

.\SQLEXPRESS    or   (local)\SQLEXPRESS     or          YourMachineName\SQLEXPRESS

Si vous regardez le Gestionnaire de configuration SQL Server (lancez-le à partir du menu Démarrer), vous verrez:

enter image description here

Si la SQL Server l'entrée lit (MSSQLSERVER) alors c'est cette instance par défaut (sans aucun nom) - sinon vous verriez le nom de l'instance entre crochets

55
marc_s