Відформатуйте SQL в студії управління SQL Server


250

У Visual Studio та інших IDE ви можете легко відформатувати свій код за допомогою комбінації клавіш, через меню або автоматично під час введення.

Мені було цікаво, чи є ще спосіб включити цю стандартну функцію в студії управління SQL Server?

Я працюю з деякими великими сховищами, які зберігаються у програмах, які є забрудненим погано відформатованим SQL, і було б добре, якби я міг просто перейти "Вибрати все -> Формат SQL"


1
SQLinForm надає функцію Hotkey
Guido

1
Тепер у нього є безкоштовний онлайн-формат: sqlinform.com/sql_formatter_online.html
Гвідо,

В Інтернеті можна використовувати 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 він чудово поєднується з вбудованим інтелектуальним сенсом, ефективно забезпечуючи більш-менш таку ж функціональну базу, що і SQL-підказка Red Gate (SQL-підказка SQL, звичайно, має додаткові речі, як фрагменти, швидкий сценарій об'єктів, тощо).

Зворотній зв'язок / запити щодо функцій більш ніж вітаються, будь ласка, дайте йому кружляти, якщо ви отримаєте можливість!

Розкриття інформації: Це, мабуть, вже очевидно, але я написав цю бібліотеку / інструмент / сайт, тому ця відповідь також є безсоромною саморекламою :)


2
На SQL сервері 2012 ярлик Ctrl + K, Ctrl + F за замовчуванням не працює, оскільки він говорить, що він вже пов'язаний з вибором формату . Він працював після зміни його з DataWarehouse Designer::Ctrl+k, Ctrl+fна Global::Ctrl+k, Ctrl+j.
Марко Лацкович

5
см підказки для SSMS 2014 Додаткові установки stackoverflow.com/questions/23303026 / ...
Олександр Sigachov

2
Чудовий інструмент, але не сумісний з RTM 2016 року
dmeglio

1
@ dman2306 - інсталятор, сумісний з 2016 (та 17), тепер доступний.
Дао

2
@Jordan: у Windows 10 .Net Framework 3.5 SP1 (включаючи .Net 2.0) - додаткова функція Windows, яку можна ввімкнути на екрані / функціональності "Увімкнення та вимкнення функцій Windows". Він називається ".NET Framework 3.5 (включає в себе .NET 2.0 та 3.0)", і він знаходиться вгорі списку додаткових функцій - це не працює для вас? (Так, вибачте, що вимагає .NET 2.0 в цей день і вік, ймовірно , нерозумно ... Створено Issue github.com/TaoK/PoorMansTSqlFormatter/issues/199 для відстеження)
Tao

137

Є особлива хитрість, яку я виявив випадково.

  1. Виберіть запит, який ви хочете відформатувати.
  2. Ctrl+ Shift+ Q(Це відкриє ваш запит у дизайнера запитів)
  3. Тоді просто йди ОК Вуаля! Дизайнер запитів відформатує ваш запит для вас. Застереження полягає в тому, що ви можете це робити тільки для тверджень і не процесуального кодексу, але краще, ніж нічого.

9
Гарна порада. На жаль, поки цей метод працює, він робить досить погану роботу. Але принаймні є щось вбудоване.
Джон Гомер

він відформатований, але не очікуваним. У будь-якому випадку щось краще, ніж нічого:) ..... Дякую за пораду.
Jaini Naveen

2
Ну, наскільки я можу сказати, хоча це дійсно не найкраща робота, вона щось робить, і це все поза рамками, і вам за це не доведеться платити. Але лише одна людина думала відзначити це як корисне. Я вражений по-справжньому, я думав, що у мене цей прив’язаний ;-)
Джастін,

1
Я виявив, що аналогічно запити формуються під час вставки в новий перегляд. Але це набагато чистіше ... +1.
Фекмор

16
це буде працювати лише в тому випадку, якщо вміст запиту може представити графічно.
kbvishnu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.