Открытие файлов .sql в SSMS 2012 в качестве программы по умолчанию и с существующим экземпляром

При установке SSMS 2012 вместе с любой другой существующей установкой SSMS, такой как SSMS 2008 R2, возникает проблема с установкой программы по умолчанию для открытия файлов .SQL на новую версию SSMS 2012.

Перетаскивание файла .sql в окно запроса работает успешно. Однако, когда пользователь дважды щелкает файл .sql, новый экземпляр 2008 R2 может открыться как запись, связанная с .sql. Изменение параметра Открыть с помощью по умолчанию не имеет значения при двойном щелчке новых файлов. Кроме того, изменение сценария командной строки для открытия может привести к изменению .sql на открытие в SSMS 2012, но это по-прежнему вызывает повторяющиеся экземпляры ssms вместо использования существующего экземпляра (вызывая дополнительную нагрузку и использование памяти).


person sheldonhull    schedule 28.01.2013    source источник
comment
Я неправильно думал, что это вики сообщества, пока не прочитал описание. Может ли модератор удалить это из вики сообщества, поскольку я предоставил вопросы и ответы? Прошу прощения за недоразумение. Спасибо   -  person sheldonhull    schedule 28.01.2013


Ответы (7)


  1. Адаптировано из этого сообщения о том, как как исправить, что файл .sql не открывается в SSMS 2008, вы должны начать с открытия реестра (regedit)
  2. Перейдите к HKEY_CLASSES_ROOT\.sql и измените значение по умолчанию на ssms.sql.11.0 (SSMS 2012 — это v11 продукта). Это сообщает вашему компьютеру строку приложения, которую он должен искать при попытке открыть файлы типа .sql.

    .sql

  3. Реестр берет это имя, которое вы только что ввели, а затем ищет, что на самом деле делать в другом параметре реестра.

    Перейдите HKEY_CLASSES_ROOT\ssms.sql.11.0\Shell\Command и измените значение по умолчанию на:

    "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\ssms.exe" "%1" /dde
    

    ssms.sql.11.0

  4. Выключите компьютер и снова включите его.

    Если по какой-то причине все еще не работает. Щелкните правой кнопкой мыши любой файл SQL. Перейдите в «Свойства» и нажмите, чтобы изменить файл, с которым он открывается. У вас может быть два доступных варианта SQL. Попробуйте то одно, то другое.

    открыть с помощью

person KyleMit    schedule 20.03.2015
comment
Это определенно сработало для меня (и было единственным, что сработало). Нет необходимости устанавливать какие-либо сторонние приложения. Обратите внимание на последнюю часть ответа. После редактирования реестра и перезапуска он все еще открывался в старой версии 2008 года, но, как говорится в последней части ответа, вы можете успешно изменить тип файла через пользовательский интерфейс - как вы пытались сначала безуспешно - только после этого реестра меняется, он фактически остается! - person EF0; 05.05.2015
comment
Шаг 3 должен быть HKEY_CLASSES_ROOT\ssms.sql.11.0\Shell\Open\Command. Открыть не было на пути. - person JOpuckman; 11.01.2017
comment
Для меня все, что мне нужно было сделать, это шаг 4. - person usr; 17.04.2017

  1. Чтобы изменить запись по умолчанию, я использовал приложение, которое отображало значения DDE (динамический обмен данными). Я лично использовал FileTypesMan.
  2. Затем я изменил командную строку для SSMS на:

    "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe" /dde "%1"
    

    Причина, по которой новый экземпляр всегда открывается с редактированием, заключается в том, что Windows необходимо связать файл с программу, чтобы она могла определить, запущена ли существующая программа, и использовать этот экземпляр. Кажется, это достигается с помощью DDE. /dde указывает, что командная строка должна использовать DDE. "%1" передает первую строку (путь ssms.exe) протоколу DDE для использования в качестве параметра.

  3. Сообщение DDE: было сохранено в значении SSMS 2008 R2, которое я нашел: Open("%1")

  4. Приложение DDE: измените приложение на ssms.11.0

    Почему? Это была трудная часть. Где это находится? Я не смог найти инструмент для отображения имени приложения DDE. Когда я просматривал редактор реестра, я обнаружил, что sqlwb.sql.9.0 — это запись для открытия нового файла .sql с 2008 R2. Это соответствует записи реестра для sqlwb.9.0, которую показывала запись SSMS 2008 R2 до того, как я начал вносить изменения в FileTypesMan. Я удалил .sql и обнаружил, что в HKEY_CLASSES_ROOT есть запись для ssms.sql.11.0 .

= Ассоциация файлов теперь настроена на новую установку, и если SSMS.EXE открыт, он должен использовать существующий экземпляр без каких-либо дополнительных действий.

Совет. Чтобы еще больше ускорить первоначальную загрузку, если она у вас не открыта, вы можете использовать другие параметры командной строки при загрузке. Просто перейдите в диалоговое окно RUN и введите: ssms.exe -? для списка параметров запуска. Лично я использую -nosplash, чтобы исключить загрузку экрана-заставки.

Кроме того, я использую SSMSBoost, единственный лучший инструмент, который мне приходилось помогать ежедневно использовать SSMS (базовое форматирование кода , фрагмент с размещением курсора, настройка предпочтительных подключений, полное программирование сочетаний клавиш (наряду с возможностью выполнения нескольких шагов в одном ярлыке, т. е. базовыми макросами». Андре и его команда чрезвычайно отзывчивы к новым идеям на своем форуме, его разработчики помогая улучшить жизнь других разработчиков.

person Community    schedule 28.01.2013

Для SQL 2014 вы можете использовать следующий *.reg-файл (для 2012 года замените 12 на 11 и для 2016 года (я думаю) на 13):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\sql_auto_file]
@=""
"EditFlags"=hex:00,00,00,00
"FriendlyTypeName"="SQL"

[HKEY_CLASSES_ROOT\sql_auto_file\shell]

[HKEY_CLASSES_ROOT\sql_auto_file\shell\open]

[HKEY_CLASSES_ROOT\sql_auto_file\shell\open\command]
@="\"C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\ManagementStudio\\Ssms.exe\" /dde \"%1\""

[HKEY_CLASSES_ROOT\sql_auto_file\shell\open\ddeexec]
@="Open(\"%1\")"

[HKEY_CLASSES_ROOT\sql_auto_file\shell\open\ddeexec\Application]
@="ssms.12.0"

[HKEY_CLASSES_ROOT\sql_auto_file\shell\open\ddeexec\Topic]
@="system"
person Thomas Franz    schedule 22.05.2015

У меня была такая же проблема. Использование «восстановить ассоциации файлов» в ssms 2012 не дало никакого эффекта. Я смог решить эту проблему, щелкнув правой кнопкой мыши и выбрав «открыть с помощью» -> выбрать программу по умолчанию. Теперь я знаю, вы сказали, что это не сработало, но есть хитрость. Вместо того, чтобы выбирать предварительно предоставленный значок для ssms 2012, выберите «Обзор» и перейдите к c:\program files(x86)\Microsoft SQL server\110\tools\binn\managementStudio\ и щелкните ssms.exe. Нажмите открыть, нажмите ок. Как только я это сделал, ssms 2012 стал по умолчанию, и двойной щелчок по другим файлам .sql загружается на вкладки в том же экземпляре.

person Brian Swift    schedule 16.05.2014
comment
Моя установка предоставила параллельный путь под program files вместо program files(x86). Но это было нехорошо. Следование вашим инструкциям точно сработало. - person Smandoli; 15.04.2016

Другое решение: https://stackoverflow.com/a/24945327/813599

Я искал более правильный способ ссылки на другие вопросы и ответы и не смог найти его после 15 минут поиска ... хотел бы получить образование и отредактирую это, если это так.

person Beej    schedule 24.07.2014

У меня была похожая, но немного другая проблема. Я хотел открыть файл .sqlplan на новой вкладке в SSMS 2014. Я пробовал все вышеперечисленное, но ни один из них не работал.

Просмотрев реестр, я обнаружил, что в ssms.sql.12.0 есть узел «DdeExec», а в ssms.sqlplan.12.0 — нет.

введите здесь описание изображения

Поэтому я экспортирую узел «DdeExec» из ssms.sql.12.0 и переименовываю sql в sqlplan, а затем импортирую его обратно. После этого я смог открыть файл .sqlplan в новой вкладке.

Вот файл реестра: Редактор реестра Windows версии 5.00

[HKEY_CLASSES_ROOT\ssms.sqlplan.12.0\Shell\Open\DdeExec]
@="Open(\"%1\")"

[HKEY_CLASSES_ROOT\ssms.sqlplan.12.0\Shell\Open\DdeExec\Application]
@="ssms.12.0"

[HKEY_CLASSES_ROOT\ssms.sqlplan.12.0\Shell\Open\DdeExec\Topic]
@="system"
person Vinh    schedule 12.09.2016

Студия управления 18:

"C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe" /dde "%1"
person jnoreiga    schedule 14.10.2020