Formatieren Sie SQL in SQL Server Management Studio


250

In Visual Studio und anderen IDEs können Sie Ihren Code einfach automatisch über eine Tastenkombination, über das Menü oder automatisch während der Eingabe formatieren.

Ich habe mich gefragt, ob es noch eine Möglichkeit gibt, diese Standardfunktion in SQL Server Management Studio zu aktivieren.

Ich arbeite mit einigen großen gespeicherten Prozessen, die ein Durcheinander von schlecht formatiertem SQL darstellen, und es wäre schön, wenn ich einfach auf "Alle auswählen -> SQL formatieren" klicken könnte.


1
SQLinForm bietet eine Hotkey-Funktion
Guido

1
Es hat jetzt einen kostenlosen Online-Formatierer: sqlinform.com/sql_formatter_online.html
Guido


Q wurde aktualisiert, um zum Thema zu gehören
Andrew

Antworten:


270

Späte Antwort, aber hoffentlich lohnenswert: Der T-SQL-Formatierer von Poor Man ist ein Open-Source -T-SQL-Formatierer (kostenlos) mit vollständiger T-SQL-Batch- / Skriptunterstützung (jede DDL, jede DML), SSMS-Plugin und Befehlszeilen-Bulk Formatierer und andere Optionen.

Es ist für die sofortige / Online-Verwendung unter http://poorsql.com verfügbar und wurde erst heute auf "Version 1.0" (es war einige Monate in der Beta-Version) abgestuft , nachdem es gerade Unterstützung für MERGEAussagen, OUTPUTKlauseln und andere heikle Dinge erhalten hat .

Mit dem SSMS-Add-In können Sie Ihren eigenen Hotkey festlegen (Standard ist Ctrl- K, Ctrl- F, um mit Visual Studio übereinzustimmen ) und das gesamte Skript oder nur den Code formatieren, den Sie ausgewählt / hervorgehoben haben, falls vorhanden. Die Ausgabeformatierung kann angepasst werden.

In SSMS 2008 lässt es sich gut mit dem integrierten Intelli-Sense kombinieren und bietet effektiv mehr oder weniger die gleiche Basisfunktionalität wie die SQL-Eingabeaufforderung von Red Gate (SQL-Eingabeaufforderung enthält natürlich zusätzliche Funktionen wie Snippets, schnelles Scripting von Objekten). etc).

Feedback- / Feature-Anfragen sind mehr als willkommen. Bitte probieren Sie es aus, wenn Sie die Gelegenheit dazu haben!

Offenlegung: Dies ist wahrscheinlich bereits offensichtlich, aber ich habe diese Bibliothek / dieses Tool / diese Site geschrieben, daher ist diese Antwort auch eine schamlose Eigenwerbung :)


2
Unter SQL Server 2012 funktioniert die Standardverknüpfung Strg + K, Strg + F nicht, da sie besagt, dass sie bereits an die Formatauswahl gebunden ist . Es hat funktioniert, nachdem es von auf DataWarehouse Designer::Ctrl+k, Ctrl+fgeändert wurde Global::Ctrl+k, Ctrl+j.
Marco Lackovic

5
Siehe Hinweise für SSMS 2014 Installationen stackoverflow.com/questions/23303026/…
Alexander Sigachov

2
Tolles Tool, aber nicht kompatibel mit 2016 RTM
dmeglio

1
@ dman2306 - Installationsprogramm kompatibel mit 2016 (und 17) jetzt verfügbar.
Tao

2
@Jordan: In Windows 10 ist .Net Framework 3.5 SP1 (einschließlich .Net 2.0) eine optionale Funktion von Windows, die im Bildschirm / in den Funktionen "Windows-Funktionen aktivieren oder deaktivieren" aktiviert werden kann. Es heißt ".NET Framework 3.5 (einschließlich .NET 2.0 und 3.0)" und steht ganz oben auf der Liste der optionalen Funktionen. Funktioniert dies bei Ihnen nicht? (Ja, sorry, es ist heutzutage wahrscheinlich nicht sinnvoll, .NET 2.0 zu benötigen ... Erstelltes Problem github.com/TaoK/PoorMansTSqlFormatter/issues/199, um es zu verfolgen)
Tao

137

Es gibt einen besonderen Trick, den ich zufällig entdeckt habe.

  1. Wählen Sie die Abfrage aus, die Sie formatieren möchten.
  2. Ctrl+ Shift+ Q(Dies öffnet Ihre Abfrage im Abfrage-Designer)
  3. Dann geh einfach OK Voila! Der Abfrage-Designer formatiert Ihre Abfrage für Sie. Vorsichtsmaßnahme ist, dass Sie dies nur für Anweisungen und nicht für Prozedurcode tun können, aber es ist besser als nichts.

9
Netter Tipp. Obwohl diese Methode funktioniert, macht sie imho leider einen ziemlich schlechten Job. Aber zumindest ist etwas eingebaut.
John Homer

es formatiert aber nicht den erwarteten Weg. Jedenfalls ist etwas besser als nichts :) ..... Danke für den Tipp.
Jaini Naveen

2
Soweit ich das beurteilen kann, macht es zwar nicht wirklich den besten Job, macht aber etwas und ist sofort einsatzbereit, und Sie müssen nicht dafür bezahlen. Aber nur eine Person dachte daran, es als nützlich anzukreuzen. Ich bin wirklich erstaunt, ich dachte, ich hätte diesen fixiert ;-)
Justin

1
Ich habe festgestellt, dass Abfragen ebenfalls formatiert werden, wenn sie in eine neue Ansicht eingefügt werden. Aber das ist viel sauberer ... +1.
Feckmore

16
Dies funktioniert nur, wenn der Inhalt der Abfrage grafisch dargestellt werden kann.
Kbvishnu
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.