Макросы в SQL Server Management Studio - PullRequest
15 голосов
/ 15 марта 2009

Есть ли способ реализовать макросы для редактирования текста в SSMS? Я бы, например, нравится преобразовывать код, как показано ниже, но с помощью нажатия клавиши, а не многословного поиска и замены регулярных выражений.

Это:

INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (<fieldOne, datetime,>
           ,<fieldTwo, real(24,0))

Должен стать таким:

INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (@fieldOne
           ,@fieldTwo)

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

Редактирование сохраненных шаблонов не вариант, так как эти шаблоны генерируются динамически, и использование Ctrl + Shift + M также не вариант, так как мне все еще приходится вводить имя каждого параметра, но без удобства копирования и вставки в редакторе запросов.

Нет решения SSMS! Я ищу какое-то внешнее вуду, которое может помочь мне в этом.

Ответы [ 6 ]

10 голосов
/ 16 марта 2009

А как насчет AutoHotKey сценария?

В зависимости от сложности ваших шаблонов, вы можете либо

  1. используйте AutoHotKey для воспроизведения нажатий клавиш необходимо для поиска регулярных выражений и заменить или
  2. скопировать шаблон в буфер обмена и манипулировать им непосредственно в AutoHotKey перед вставить его обратно.

Я уверен, что первый вариант будет работать. Я не пробовал второй.

Этот вопрос показывает, как можно написать скрипт AutoHotKey для прослушивания аккордов клавиатуры.

5 голосов
/ 15 марта 2009

Если вы используете SSMS 2005 и выше, он имеет встроенную поддержку шаблонов. Это не совсем полноценный макрос, но, тем не менее, он все еще довольно полезен.

Синтаксис в точности такой, как вы показали в своем первом фрагменте кода, и вы просто нажимаете Ctrl + Shift + M, чтобы открыть диалоговое окно, в котором вам предлагается ввести значения в биты в угловых скобках.

Сервер SQL создает сценарий в этом формате, если щелкнуть правой кнопкой мыши таблицу и выбрать «Таблица сценариев как», а затем выбрать параметр вставки, обновления или удаления.

Вы также можете создавать свои собственные пользовательские шаблоны или изменять один из существующих встроенных (нажмите «Просмотр» -> «Проводник шаблонов», чтобы получить доступ к другим встроенным шаблонам).

На MSDN есть короткая статья , в которой объясняется, как начать работу с шаблонами.

1 голос
/ 28 августа 2016

Для SSMS 2016 вы можете использовать мое расширение Visual Commander . Он поддерживает запись / воспроизведение макросов и пользовательские команды C # / VB для работы с текстовым редактором.

0 голосов
/ 29 октября 2014

Я обычно копирую код в другой редактор (Notepad ++ или Delphi / RAD Studio редактор), делаю свои макросы и вставляю их обратно в SSMS.

0 голосов
/ 12 января 2011

Искал что-то еще, но нашел этот вопрос. Если вы все еще ищете что-то, попробуйте SSMS toolpack: http://www.ssmstoolspack.com/ В нем есть макросы и куча других полезных вещей. И это бесплатно!

0 голосов
/ 15 марта 2009

Первый код - это шаблон из старого доброго MS Query Analyzer. Ярлык для заполнения - Ctrl + M (но я не уверен, может быть, это Ctrl + Shift + M).

Должна быть такая же функция в более новых SSMS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...