web-dev-qa-db-fra.com

Comment empêcher les fichiers SQL d'ouvrir de nouvelles instances de SSMS 17.9.1?

Synopsis

Ce n'est pas un nouveau problème et il existe plusieurs solutions flottant sur Internet.

Problème

Lorsque vous double-cliquez sur un .sql fichier, une nouvelle instance de SSMS est ouverte. Je n'ai pas eu ce problème jusqu'à ce que le nouveau SQL Server Management Studio (SSMS 17.9.1) soit installé.

Ce que j'ai essayé

  • Cette page répertorie plusieurs solutions suggérant des modifications du registre et des associations de fichiers, et la réinstallation de SSMS. Aucun n'a fonctionné.
  • Celui-ci a presque la même chose que le lien précédent. (SO est tellement mieux que ces forums.)
  • Les modifications du registre sont affichées ici avec d'excellentes captures d'écran. J'ai ajouté "%1" mais cela ne fait aucune différence.
  • La suggestion mentionnée sur SO n'a pas fonctionné non plus.
  • Sur DBA , il s'agit surtout de permissions augmentées, ce qui n'est pas le cas dans ma situation.

Solutions de contournement

Oui, je connais ces solutions:

  • Ctrl + O
  • Traîne .sql fichiers vers SSMS

Je suis pas à la recherche de solutions de contournement.

Mon environnement

Même avec le nouveau SSMS 17.9.1 (build: 14.0.17289.0), je pointe toujours vers SQL Server 2016 (13.0.5233.0). Auparavant, j'utilisais SSMS juin 2016 (build: 13.0.15000.23) avec le même SQL Server (13.0.5233.0).

En raison de l'autorisation, je n'exécute aucune application en tant qu'administrateur.


Les versions de SQL Server sont répertoriées ici .

Les versions de SQL Server Management Studio sont répertoriées ici .

8
Farhan

J'ai rencontré ce problème après avoir installé SSMS 18 au lieu de 17.9. Ensuite, j'ai essayé des solutions de la liste ci-dessus mais aucune n'a fonctionné. Désinstaller SSMS 18 et réinstaller 17.9 n'a pas fonctionné non plus. J'ai finalement pu résoudre ce problème avec SSMS 18, mais j'espère que cela corrigera également le comportement incorrect de SSMS 17. Tout d'abord, j'ai désinstallé SSMS, puis j'ai cherché dans le registre pour trouver et supprimer tous les nœuds significatifs contenant des informations sur SSMS ou sql_auto_file. J'ai supprimé les nœuds suivants (n'oubliez pas de sauvegarder chacun d'eux avant de les supprimer!):

  • HKEY_CLASSES_ROOT.sql
  • HKEY_CLASSES_ROOT\Applications\Ssms.exe
  • HKEY_CLASSES_ROOT\sql_auto_file
  • HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio
  • Suppression de tous les enregistrements pour ssms dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql
  • HKEY_USERS.DEFAULT\Software\Microsoft\SQL Server Management Studio

Ensuite, j'ai redémarré mon PC, puis installé SSMS 18, puis redémarré à nouveau. Après cela, SSMS ouvre les fichiers sql dans l'instance SSMS existante et Explorer a une icône de fichier correcte attribuée (document avec une petite icône de base de données)

6
Alexander G

Le message d'Alexander G m'a conduit à ma réponse.

J'ai eu le même problème en ouvrant des fichiers .sql à partir de l'Explorateur en double-cliquant dessus ouvrirait une nouvelle instance de SSMS, plutôt que celle ouverte existante. Il s'agissait d'une toute nouvelle installation de SQL/SSMS sur un nouvel ordinateur portable et n'a donc pas été causée par un conflit avec une version antérieure.

Mon compte d'utilisateur standard sur l'ordinateur portable n'est pas un administrateur, donc SSMS a été installé à l'aide de "exécuter en tant qu'administrateur". Il semble que procéder de cette manière remplit les paramètres de registre spécifiques à l'utilisateur corrects dans le registre des comptes de l'administrateur plutôt que dans le mien.

Les entrées particulières incorrectes qui semblaient causer le problème étaient les suivantes:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql

J'ai créé manuellement ces entrées dans la ruche HKEY_USERS pour mon utilisateur en fonction des valeurs créées pour mon administrateur et maintenant mes fichiers .sql s'ouvrent dans l'instance existante de SSMS.

(Je pense que c'est quelque chose à voir avec l'association à sql_auto_file, plutôt qu'à ssms.sql15.0)

3
Steve

J'ai enfin trouvé une solution à ce problème. Ajoutez ce qui suit à votre registre HKCU et j'espère que cela devrait fonctionner:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql\OpenWithList] "a" = "ssms.exe" "MRUList" = "a"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql\OpenWithProgids] "ssms.sql.15.0" = hex (0):

2
Heidi

J'ai résolu ce problème en fermant Management Studio (v 18.3.1), puis en double-cliquant sur un fichier .sql dans l'Explorateur de fichiers qui ouvre SSMS. Après cela, j'ai double-cliqué sur un autre .sql et il s'est ouvert dans la même instance SSMS, puis j'ai fait un autre double-clic sur un autre .sql et il s'est ouvert dans la même instance SSMS.

Afin de voir si cela "l'a corrigé", j'ai fermé SSMS, puis ouvert SSMS. Double-cliquez ensuite sur deux fichiers .sql différents et ils s'ouvrent tous les deux dans la même instance SSMS.

0
Steve White