2009-03-15 5 views
10

Есть ли способ реализовать макросы редактирования текста в SSMS? Я бы, например, например, чтобы преобразовать код, как показано ниже, но с нажатием клавиши, а не на длинный поиск и замену регулярных выражений.Макросы в SQL Server Management Studio

Это:

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

ответ

9

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

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

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

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

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

4

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

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

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

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

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

0

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

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

+0

Это не помогает мне. Я мог бы также вручную отредактировать скрипт. – ProfK

0

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

+0

SSMS Tools Pack - отличная надстройка, но я не думаю, что у нее есть макросы. – onedaywhen

+0

Как предупреждение, оно больше не является бесплатным для SSMS 2012 и выше. – ShawnFumo

0

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

1

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

+0

Спасибо, я посмотрю, и я уверен, что это будет полезно в какой-то момент, но мне редко нужен макрос в Visual Studio, на который нацелен ваш продукт. Это была * SQL Server * Management Studio, на которую я искал макросы. – ProfK

+0

@ProfK Да, Visual Commander был первоначально разработан для VS, но в недавнем выпуске добавлена ​​поддержка SSMS 2016 https://visualstudioextensions.vlasovstudio.com/2016/08/26/automate-ssms-2016-with-visual-commander/ –

+0

О блестящий. Теперь установите его. – ProfK

Смежные вопросы