Bei der Installation von SSMS 2012 neben anderen vorhandenen SSMS-Installationen wie SSMS 2008 R2 tritt ein Problem beim Festlegen des Standardprogramms zum Öffnen von .SQL-Dateien auf die neue SSMS 2012-Version auf.
Das Ziehen der .sql-Datei in das Abfragefenster funktioniert erfolgreich. Wenn ein Benutzer jedoch auf die .sql-Datei doppelklickt, kann eine neue Instanz von 2008 R2 als dem zugeordneten SQL-Eintrag geöffnet werden. Das Ändern mit Default Open With macht beim Doppelklicken auf neue Dateien keinen Unterschied. Darüber hinaus kann das Ändern des Befehlszeilenskripts für das Öffnen möglicherweise das Ändern der .sql-Datei in SSMS 2012 bewirken, aber es verursacht immer noch wiederholte Instanzen von ssms anstelle der Verwendung der vorhandenen Instanz (wodurch zusätzliche Lade- und Speicherauslastung verursacht wird).
Ich habe dann die Befehlszeile für SSMS zu:
geändert %Vor% Der Grund, warum eine neue Instanz immer mit der Bearbeitung geöffnet wird, scheint zu sein, dass Windows die Datei einem Programm zuordnen muss , damit es sich identifizieren kann, wenn das vorhandene Programm ausgeführt wird, und diese Instanz verwenden. Dies scheint durch die Verwendung von DDE erreicht zu werden. /dde
gibt an, dass die Befehlszeile DDE verwenden soll. "% 1" übergibt die erste Zeichenfolge (Pfad "ssms.exe") an das DDE-Protokoll zur Verwendung als Parameter.
DDE Nachricht: wurde auf dem SSMS 2008 R2 Wert gehalten Ich habe gefunden: Open("%1")
DDE-Anwendung: Ändern Sie die Anwendung in ssms.11.0
Warum ? Das war der schwierige Teil. Wo ist das gefunden? Ich konnte kein Tool zum Anzeigen des DDE-Anwendungsnamens finden. Was ich gefunden habe, war, als ich den Registry-Editor überprüft habe, dass sqlwb.sql.9.0
der Eintrag ist, um eine neue .sql-Datei mit 2008 R2 zu öffnen. Dies stimmt mit dem Registrierungseintrag für sqlwb.9.0
überein, den der Eintrag SSMS 2008 R2 angezeigt hat, bevor ich meine Änderungen in FileTypesMan vorgenommen habe. Ich entfernte die .sql und fand, dass die HKEY_CLASSES_ROOT
einen Eintrag für ssms.sql.11.0
hatte.
= Die Dateizuordnung ist jetzt auf die neue Installation eingestellt. Wenn SSMS.EXE geöffnet ist, sollte sie die vorhandene Instanz ohne zusätzliche Arbeit verwenden.
Tipp : Um die anfängliche Belastung weiter zu beschleunigen, wenn Sie sie nicht geöffnet haben, können Sie andere Befehlszeilenoptionen für die Ladung verwenden. Gehen Sie einfach in den RUN-Dialog und geben Sie Folgendes ein: ssms.exe -?
für eine Liste von Startparametern. Ich benutze -nosplash
, um die Splash-Anzeige zu löschen.
Zusätzlich benutze ich SSMSBoost , das beste Tool, mit dem ich jeden Tag bei der Verwendung von SSMS helfen konnte (grundlegende Codeformatierung, Snippet) w / Cursor-Platzierung, bevorzugte Verbindungen Setup, vollständige Tastatur Shortcut-Programmierung (zusammen mit der Option für mehrere Schritte in einmal Shortcut, dh grundlegende Makros.) Andre und sein Team sind äußerst reaktionsschnell auf neue Ideen in ihrem Forum, sehr viele Entwickler helfen zu verbessern das Leben eines anderen Entwicklers.
regedit
) Gehen Sie zu HKEY_CLASSES_ROOT\.sql
und ändern Sie den Standardwert in ssms.sql.11.0
(SSMS 2012 ist v11 des Produkts). Dies teilt Ihrem Computer die Anwendungszeichenfolge mit, nach der er suchen soll, wenn er versucht, Dateien vom Typ .sql
Die Registrierung nimmt den Namen, den Sie gerade eingegeben haben, und schaut dann nach, was in einer anderen Registrierungseinstellung tatsächlich ausgeführt werden soll.
Gehe zu HKEY_CLASSES_ROOT\ssms.sql.11.0\Shell\Command
und ändere den Standardwert zu:
Schalten Sie Ihren Computer aus und wieder ein.
Wenn es aus irgendeinem Grund immer noch nicht funktioniert. Klicken Sie mit der rechten Maustaste auf eine beliebige SQL-Datei. Gehe zu Eigenschaften und klicke, um die Datei zu ändern, mit der es geöffnet wird. Sie haben möglicherweise zwei SQL-Optionen verfügbar. Probieren Sie einen anderen aus.
Für SQL 2014 können Sie die folgende * .reg-Datei verwenden (für 2012 ersetzen Sie die 12 durch 11 und für 2016 (ich nehme an) mit 13):
%Vor%Ich hatte das gleiche Problem. Die Verwendung von "Dateiverknüpfungen wiederherstellen" in ssms 2012 hatte keine Auswirkungen. Ich konnte es lösen, indem ich mit der rechten Maustaste klicke und "Öffnen mit" wähle - & gt; Wählen Sie das Standardprogramm. Jetzt weiß ich, du hast gesagt, das hat nicht funktioniert, aber es gibt einen Trick. Anstatt das vordefinierte Symbol für ssms 2012 auszuwählen, wählen Sie browse und gehen Sie zu c: \ Programme (x86) \ Microsoft SQL Server \ 110 \ tools \ binn \ managementStudio \ und klicken Sie auf ssms.exe. Klicken Sie auf Öffnen, klicken Sie auf OK. Sobald ich dies getan habe, war ssms 2012 der Standard, und Doppelklick auf weitere .sql-Dateien lädt in Tabs in der gleichen Instanz.
Ich hatte ein ähnliches, aber etwas anderes Problem. Ich wollte .sqlplan Datei in einem neuen Tab in SSMS 2014 öffnen. Ich versuchte alle oben genannten, aber keiner von ihnen funktionierte.
Mit Blick auf die Registrierung habe ich festgestellt, dass ssms.sql.12.0 den Knoten "DdeExec" hat, während ssms.sqlplan.12.0 dies nicht tut.
Bildbeschreibung hier eingeben
Also exportiere ich den "DdeExec" -Knoten von ssms.sql.12.0 und benenne sql in sqlplan um, dann importiere ich ihn wieder. Danach konnte ich .sqlplan Datei in einem neuen Tab öffnen.
Hier ist die Registrierungsdatei: Windows Registrierungseditor Version 5.00
%Vor%Tags und Links sql-server ssms-2012