Макросы в SQL Server Management Studio

Есть ли способ реализовать макросы редактирования текста в 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! Я ищу какое-то внешнее вуду, которое может помочь мне в этом.

Ответ 1

Как насчет AutoHotKey script?

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

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

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

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

Ответ 2

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

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

SQL-сервер генерирует script в этом формате, если вы щелкните правой кнопкой мыши по таблице и выберите "Script Таблица как", затем выберите вариант вставки, обновления или удаления.

Вы также можете создавать свои собственные шаблоны или изменять один из существующих встроенных (щелкните View → Template explorer, чтобы получить доступ к другим встроенным шаблонам).

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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