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


250

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

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

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


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, конечно, имеет дополнительные функции, такие как сниппеты, быстрые объектные сценарии, и т.д).

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

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


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
это будет работать только в том случае, если содержимое запроса можно представить графически.
кбвишну
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.