Форматирование SQL в SQL Server Management Studio

250

В Visual Studio и других средах IDE вы можете легко автоматически форматировать код с помощью сочетания клавиш, через меню или автоматически по мере ввода текста.

Мне было интересно, есть ли еще способ включить эту стандартную функцию в SQL Server Management Studio?

Я работаю с некоторыми хранимыми процессорами большого размера, которые представляют собой искаженный беспорядок в плохо отформатированном SQL, и было бы неплохо, если бы я просто выбрал «Выбрать все -> Форматировать SQL»

lomaxx
источник
1
SQLinForm предоставляет функцию горячих клавиш
Гвидо
1
теперь у него есть бесплатный онлайн-форматер: sqlinform.com/sql_formatter_online.html
Guido,
В Интернете вы можете использовать devtoolsonline20190908040816.azurewebsites.net/DevTools/…
GomuGomuNoRocket
Обновленный Q, чтобы быть по теме
Эндрю

Ответы:

270

Поздний ответ, но, надеюсь, стоит того: форматировщик T-SQL для « Бедного человека» - это бесплатный форматировщик T-SQL с открытым исходным кодом с полной поддержкой пакетных / сценариев T-SQL (любой DDL, любой DML), плагин SSMS, основная часть командной строки форматтер и другие варианты.

Он доступен для немедленного / онлайн-использования на http://poorsql.com и только сегодня перешел на «версию 1.0» (она была в бета-версии в течение нескольких месяцев), только что приобрела поддержку MERGEзаявлений, OUTPUTпредложений и других привередливых вещей ,

Надстройка SSMS позволяет установить собственную горячую клавишу (по умолчанию Ctrl- K, Ctrl- F, для соответствия Visual Studio) и форматирует весь сценарий или только выбранный / выделенный код, если таковой имеется. Форматирование вывода настраивается.

В SSMS 2008 он прекрасно сочетается со встроенным intelli-sense, эффективно обеспечивая более или менее ту же базовую функциональность, что и SQL-подсказка Red Gate (SQL Prompt, конечно, имеет дополнительные функции, такие как сниппеты, быстрые объектные сценарии, и т.д).

Отзывы / пожелания приветствуются, пожалуйста, дайте им знать, если у вас есть возможность!

Раскрытие: Это, вероятно, уже очевидно, но я написал эту библиотеку / инструмент / сайт, поэтому этот ответ также является бесстыдной саморекламой :)

Tao
источник
2
На SQL Server 2012 по умолчанию сочетание клавиш Ctrl + K, Ctrl + F не работает, поскольку говорит, что оно уже связано с выбором формата . Это сработало после изменения его DataWarehouse Designer::Ctrl+k, Ctrl+fна Global::Ctrl+k, Ctrl+j.
Марко Лацкович,
5
см. советы по установке SSMS 2014. stackoverflow.com/questions/23303026/…
Александр Сигачев
2
Отличный инструмент, но не совместимый с RTM 2016
dmeglio
1
@ dman2306 - теперь доступен установщик, совместимый с 2016 (и 17).
Тао
2
@Jordan: в Windows 10 .Net Framework 3.5 SP1 (включая .Net 2.0) - это дополнительная функция окон, которую можно включить на экране / в функции «Включить или выключить функции Windows». Он называется «.NET Framework 3.5 (включает в себя .NET 2.0 и 3.0)», и он находится в верхней части списка дополнительных функций - это не работает для вас? (да, извините, требовать .Net 2.0 в этот день и возраст, вероятно, не разумно ... Создан выпуск github.com/TaoK/PoorMansTSqlFormatter/issues/199 для отслеживания)
Тао
137

Есть одна особенность, которую я обнаружил случайно.

  1. Выберите запрос, который вы хотите отформатировать.
  2. Ctrl+ Shift+ Q(Это откроет ваш запрос в конструкторе запросов)
  3. Тогда просто иди ОК Вуаля! Дизайнер запросов отформатирует ваш запрос для вас. Предостережение заключается в том, что вы можете делать это только для заявлений, а не для процедурного кода, но это лучше, чем ничего.
Джастин
источник
9
Хороший совет. К сожалению, хотя этот метод работает, он делает довольно плохую работу imho. Но, по крайней мере, есть что-то встроенное.
Джон Гомер
это отформатировано, но не ожидаемый путь. В любом случае что-то лучше, чем ничего :). Спасибо за совет.
Джайни Навин
2
Ну, насколько я могу судить, хотя он на самом деле не делает лучшую работу, он что-то делает, и это из коробки, и вам не нужно за это платить. Но только один человек решил отметить это как полезное. Я действительно поражен, я думал, что у меня есть одна привязанная ;-)
Джастин
1
Я обнаружил, что, аналогично, запросы форматируются при вставке в новое представление. Но это намного чище ... +1.
Фекмор
16
это будет работать только в том случае, если содержимое запроса можно представить графически.
кбвишну