Форматировщик T-SQL
Форматируйте T-SQL для SQL Server и Azure SQL с учетом правил для идентификаторов в [квадратных скобках], строк N'' Unicode, таблиц #temp, @variables и разделителей пакетов GO. CROSS APPLY и OUTER APPLY начинаются с новых строк, OUTPUT и FOR JSON остаются отдельными предложениями, а BEGIN TRANSACTION никогда ошибочно не открывает блок. Незакрытые строки и скобки отмечаются с указанием строки и столбца, что помогает разработчикам баз данных.
Часто задаваемые вопросы
Какой синтаксис T-SQL распознается?
Распознаются идентификаторы в [квадратных скобках] с экранированием через ]] или в двойных кавычках, строки N'' Unicode, временные таблицы #temp и ##global, @variables и системные функции @@. Статические вызовы методов, например geography::Point, тоже остаются без изменений.
Как обрабатываются разделители пакетов GO?
Строка, содержащая только GO, при желании с числом повторов, например GO 5, завершает пакет. Она остается на отдельной строке, и каждый пакет форматируется отдельно.
Какие предложения T-SQL поддерживаются?
CROSS APPLY и OUTER APPLY, как и JOIN, начинаются с новых строк. OUTPUT, OPTION, FOR XML и FOR JSON остаются отдельными предложениями наряду со стандартными.
Можно ли форматировать хранимые процедуры?
Да. Блоки BEGIN и END, BEGIN TRY и BEGIN CATCH, IF и ELSE, а также циклы WHILE получают отступы. BEGIN TRANSACTION и BEGIN TRAN считаются операторами, а не началом блока.
Поддерживается ли MERGE?
Да. Ветви WHEN MATCHED, WHEN NOT MATCHED BY TARGET и WHEN NOT MATCHED BY SOURCE начинаются с новых строк.
Сохраняются ли комментарии?
Да. Комментарии строк -- и блочные комментарии /* block comments */ остаются на месте. Многострочные блочные комментарии получают новые отступы в соответствии с их расположением.
Меняется ли регистр ключевых слов?
Нет. Регистр ключевых слов и идентификаторов сохраняется. Меняются только пробелы и разрывы строк.
Какие ошибки обнаруживаются?
Незакрытые строки, идентификаторы в скобках или кавычках и блочные комментарии, а также несбалансированные круглые скобки — для каждого указываются строка и столбец. Инструмент не подключается к SQL Server и не проверяет имена объектов.
Каков максимальный размер входных данных?
До 1 MB на запрос и 128 KB на оператор или пакет. Операторы разделяются пустыми строками.
Можно ли выбрать отступы и сохраняется ли мой SQL?
Можно использовать 2 или 4 пробела либо табуляцию. Скрипт форматируется только в памяти и никогда не сохраняется.