Sformatuj SQL w SQL Server Management Studio

250

W programie Visual Studio i innych środowiskach IDE możesz łatwo automatycznie sformatować kod za pomocą skrótu klawiaturowego, menu lub automatycznie podczas pisania.

Zastanawiałem się, czy jest jeszcze sposób na włączenie tej standardowej funkcji w SQL Server Management Studio?

Pracuję z kilkoma dużymi procesorami przechowywanymi, które są zmiażdżonym bałaganem źle sformatowanego SQL i byłoby miło, gdybym mógł po prostu przejść do „Zaznacz wszystko -> Formatuj SQL”

lomaxx
źródło
1
SQLinForm zapewnia funkcję skrótu
Guido
1
ma teraz bezpłatny formatator
Guido
Online możesz użyć devtoolsonline20190908040816.azurewebsites.net/DevTools/…
GomuGomuNoRocket 10.09
Zaktualizowano Q, aby był na temat
Andrew

Odpowiedzi:

270

Późna odpowiedź, ale miejmy nadzieję, że warto: Formater T-SQL ubogiego człowieka to wolny formatator T-SQL z pełną obsługą partii / skryptów T-SQL (dowolny DDL, dowolny DML), wtyczka SSMS, większość wiersza poleceń formatyzator i inne opcje.

Jest dostępny do natychmiastowego użycia / online na http://poorsql.com , a właśnie dziś przeszedł do „wersji 1.0” (był w wersji beta przez kilka miesięcy), właśnie zyskał wsparcie dla MERGEoświadczeń, OUTPUTklauzul i innych drobiazgów .

Dodatek SSMS pozwala ustawić własny skrót (domyślnie Ctrl- K, Ctrl- F, aby dopasować Visual Studio) i formatuje cały skrypt lub tylko wybrany / podświetlony kod, jeśli taki istnieje. Formatowanie wyjściowe można dostosować.

W SSMS 2008 ładnie łączy się z wbudowanym intelektem, skutecznie zapewniając mniej więcej taką samą podstawową funkcjonalność, jak Monit SQL Red Gate (Monit SQL ma oczywiście dodatkowe funkcje, takie jak fragmenty, szybkie skryptowanie obiektów, itp).

Informacje zwrotne / prośby o nowe funkcje są mile widziane, dajcie im wir, jeśli macie szansę!

Ujawnienie: Prawdopodobnie jest to już oczywiste, ale napisałem tę bibliotekę / narzędzie / stronę, więc ta odpowiedź jest również bezwstydną autopromocją :)

Tao
źródło
2
Na serwerze SQL 2012 domyślny skrót Ctrl + K, Ctrl + F nie działa, ponieważ mówi, że jest już powiązany z wyborem formatu . Działa po zmianie z DataWarehouse Designer::Ctrl+k, Ctrl+fna Global::Ctrl+k, Ctrl+j.
Marco Lackovic
5
zobacz wskazówki dotyczące instalacji SSMS 2014 stackoverflow.com/questions/23303026/...
Alexander Sigachov
2
Świetne narzędzie, ale niezgodne z RTM 2016
dmeglio
1
@ dman2306 - instalator zgodny z 2016 (i 17) już dostępny.
Tao
2
@Jordan: w systemie Windows 10 .Net Framework 3.5 SP1 (w tym .Net 2.0) jest opcjonalną funkcją systemu Windows, którą można włączyć na ekranie / funkcji „Włącz lub wyłącz funkcje systemu Windows”. Nazywa się „.NET Framework 3.5 (obejmuje .NET 2.0 i 3.0)” i znajduje się na górze listy opcjonalnych funkcji - czy to nie działa dla Ciebie? (tak, przepraszam, wymaganie .Net 2.0 w dzisiejszych czasach i prawdopodobnie nie jest rozsądne ... Utworzono problem github.com/TaoK/PoorMansTSqlFormatter/issues/199 do śledzenia)
Tao
137

Jest specjalna sztuczka, którą odkryłem przypadkowo.

  1. Wybierz zapytanie, które chcesz sformatować.
  2. Ctrl+ Shift+ Q(Spowoduje to otwarcie zapytania w projektancie zapytań)
  3. Więc po prostu idź OK Voila! Projektant zapytań sformatuje zapytanie. Zastrzeżenie polega na tym, że możesz to zrobić tylko w przypadku instrukcji, a nie kodu proceduralnego, ale jest to lepsze niż nic.
Justin
źródło
9
Dobra wskazówka. Niestety, podczas gdy ta metoda działa, robi dość kiepską pracę imho. Ale przynajmniej jest coś wbudowanego.
John Homer,
sformatowany, ale nie w oczekiwany sposób. W każdym razie coś jest lepsze niż nic:) ..... Dzięki za wskazówkę.
Jaini Naveen
2
Cóż, o ile mogę stwierdzić, chociaż nie robi to najlepiej, ale robi coś i jest gotowy do użycia i nie musisz za to płacić. Ale tylko jedna osoba pomyślała, aby zaznaczyć to jako Przydatne. Jestem naprawdę zdziwiony, myślałem, że mam ten przypięty ;-)
Justin
1
Odkryłem, że podobnie zapytania są formatowane po wklejeniu do nowego Widoku. Ale to jest o wiele czystsze ... +1.
Feckmore
16
zadziała to tylko wtedy, gdy treść zapytania będzie mogła reprezentować graficznie.
kbvishnu