блог о bi, №1 в рунете

Инструменты для автоматизации Стайлинга SQL кода

В данной работе будут приведены бесплатные инструменты форматирования SQL кода, в приоритете поисков были надстройки к SQL Server Management Studio (SSMS) или сайты, где можно это было сделать.

Для тестирования были использованы T-SQL процедуры. Цель данной работы привести к общему формату T-SQL код у сотрудников.
Проанализировав рынок, из большого разнообразия справились с корректным форматированием SQL три сайта:

1. Instant SQL Formatter

Является бесплатной версией платного инструмента SQL Pretty Printer.

Ссылка: https://www.dpriver.com/pp/sqlformat.htm

2. red-gate.com/website/sql-formatter (SQL Prompt)

Данный форматер основан на платном инструменте SQL Prompt, который является многофункциональной надстройкой для SSMS и VS.

Ссылка: https://www.red-gate.com/website/sql-formatter

3. Poor SQL (Poor Man's T-SQL Formatter)

Открытый исходный код, имеет разные вариаций (сайт, библиотека, приложение, надстройки), многие репозитории на github берут его за основу для своих форматеров.

Ссылка: https://poorsql.com/

Как надстройка для SSMS, из бесплатных надстроек лучше всего с простотой установки и тестовыми примерами, справился Poor Man's T-SQL Formatter.

Установив данную надстройку и развернув панель инструментов “Tools”, можно будет его использовать (Format T-SQL Code), а также настроить (T-SQL Formatting Options).
Окно настроек форматирования выглядит следующим образом:
Для установки Poor Man's T-SQL Formatter мне потребовалось:

1) Скачать установочный файл надстройки для SSMS и начать установку;
2) Обновить .NET Framework 2.0;
3) Добавить в конфигурационный файл (Ssms.exe.config) зависимость.

Чтобы добавить в конфигурационный файл SSMS зависимость, нужно:

1) Найти конфигурационный файл, который находится в C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE;
2) Нажав правой кнопкой мыши по файлу, перейти в Properies в раздел Sequrity поставить галочку на Modify (это нужно чтобы добавить изменения);
3) Открыть файл, в раздел <assemblyBinding> добавить код и сохранить изменения.
Код для добавления представлен ниже.

<dependentAssembly> 
<assemblyIdentity name="Microsoft.VisualStudio.Shell.12.0" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
<bindingRedirect oldVersion="2.0.0.0-15.0.0.0" newVersion="15.0.0.0"/> 
</dependentAssembly>   
Проанализировав множество бесплатных альтернативных вариантов инструментов (сайты, плагины Google, приложения для командной строки, надстройки для текстовых редакторов), выбор пал на Poor Man's T-SQL Formatter как надстройка для SSMS, ниже будут представлены преимущества и недостатки данной надстройки.

Преимущества:

  • Бесплатный.
  • Прост в установке.
  • Справляется с поставленными задачами.
  • Имеет окно настроек форматирования.
  • Находится непосредственно в среде разработки.
  • Открытый исходный код, который позволяет делать свои вариации.

Недостатки:

  • Не выравнивает текстовые строки, распространенные на несколько строчек кода.
  • Не выравнивает комментарии /**/ распространенные на несколько строчек кода.