Formatieren Transact-SQL in SSMS

Gilt für: SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Durch konsistente Formatierung können Transact-SQL (T-SQL) leichter gelesen, überprüft und verwaltet werden, insbesondere, wenn mehrere Personen zur gleichen Codebasis beitragen. SQL Server Management Studio (SSMS) enthält einen integrierten SQL-Formatierer (Vorschau), den Sie bei Bedarf ausführen, für die automatische Formatierung beim Speichern konfigurieren und über SSMS-Einstellungen oder .editorconfig -Dateien anpassen können.

Die SQL-Formatierungsfunktionalität in SSMS basiert auf ScriptDOM, einer Open Source-.NET-Bibliothek, die T-SQL analysiert und Skripts basierend auf abstrakten Syntaxstrukturen generiert.

Voraussetzungen

Bei Bedarf formatieren

Sie können T-SQL in jedem Abfrage-Editor-Fenster jederzeit formatieren. Der Formatierer kann auf das gesamte Dokument oder nur auf einen markierten Textabschnitt angewendet werden.

Verwenden Sie zum Formatieren von SQL bei Bedarf eine der folgenden Methoden:

  • Kontextmenü: Klicken Sie mit der rechten Maustaste in ein T-SQL-Editorfenster, und wählen Sie "SQL formatieren (Vorschau)" aus.
  • Menü „Bearbeiten“: Wählen Sie Bearbeiten>Erweitert>SQL formatieren (Vorschau) aus.
  • Tastenkombination: Drücken Sie STRG+K, STRG+Q.

Wenn Sie Text markieren, wird die Formatierung nur auf die Auswahl angewendet. Wenn Sie keinen Text markieren, wird die Formatierung auf das gesamte Dokument angewendet.

Beim Speichern formatieren

Wenn Sie die Option " Speichern " aktivieren, wendet der Formatierer automatisch Ihre konfigurierten Formatierungsoptionen bei jedem Speichern einer .sql Datei an. Die Formatierung beim Speichern funktioniert mit benannten oder gespeicherten Abfrage-Editorfenstern sowie mit Dateien in SQL-Datenbankprojekten. Die Formatierung beim Speichern sorgt dafür, dass Ihre SQL-Dateien in Pull Requests und Code-Reviews konsistent bleiben.

So aktivieren Sie das Format beim Speichern für alle Dateien:

  1. Wählen Sie Extras>Optionen aus.
  2. Wechseln Sie zu SQL Formatter (Vorschau)>Formatierung.
  3. Setzen Sie Beim Speichern formatieren auf True.
  4. Wählen Sie OK aus.

Sie können auch format_on_save = true in einer .editorconfig-Datei festlegen, um die Formatierung beim Speichern für alle .sql-Dateien in Ihrem Projekt oder Ordner zu aktivieren. Weitere Informationen finden Sie in der EDITORCONFIG-Datei.

Konfigurieren von Formatierungsoptionen

Der Formatierer unterstützt einen Bereich von Optionen, die steuern, wie Ihre SQL-Formatvorlage formatiert wird, z. B. Schlüsselwort-Groß-/Kleinschreibung, Einzugsgröße, Semikolons nach Anweisungen und Zeilenumbrüche für Klauseln wie FROM, und WHEREJOIN. Sie können diese Optionen auf zwei Arten konfigurieren: über SSMS-Einstellungen oder über eine .editorconfig Datei.

Wenn sowohl eine SSMS-Einstellung als auch ein .editorconfig Wert für dieselbe Option vorhanden sind, hat der .editorconfig Wert Vorrang. Mit dieser Rangfolge können Sie Ihre bevorzugten Standardwerte in SSMS festlegen und diese pro Projekt oder Ordner mit einer .editorconfig Datei überschreiben.

SSMS-Einstellungen

So konfigurieren Sie Formatierungsoptionen in SSMS:

  1. Wählen Sie Extras>Optionen aus.
  2. Wechseln Sie zu SQL-Formatierer (Vorschau).
  3. Passen Sie die Einstellungen in den Unterkategorien an: General, Alignment, Paths, Formatting, Indentation, Multiline, New Line, and Spacing.
  4. Wählen Sie OK aus.

.editorconfig-Datei

Sie können Formatierungsoptionen in einer .editorconfig Datei definieren, die in Ihrem Projekt oder Ordner platziert ist. SSMS liest diese Werte aus und wendet sie als Überschreibungen auf die SSMS-Einstellungen an.

Alle SQL-Formatierungsschlüssel befinden sich unter [*.sql] in .editorconfig.

Allgemein

Key Typ Werte Default
sql_version enum Sql80 Sql90 Sql100 Sql110 Sql120 Sql130 Sql140 Sql150 Sql160 Sql170 Sql170
sql_engine_type enum All Standalone SqlAzure All

Ausrichtung

Key Typ Default Beschreibung
align_clause_bodies bool true Textkörper von FROM, WHERE, GROUP BY und ähnlichen Klauseln ausrichten.
align_column_definition_fields bool true Ausrichten von Spaltendefinitionsfeldern, z. B. Name, Typ und Einschränkungen.
align_set_clause_item bool true Ausrichten von SET Klauselelementen in UPDATE Anweisungen.

Pfade

Key Typ Default
allow_external_language_paths bool true
allow_external_library_paths bool true

Formatierung

Key Typ Werte Default Beschreibung
format_on_save bool false Automatisches Format beim Speichern (nur SSMS, nicht in ScriptDOM).
as_keyword_on_own_line bool true Setzen Sie AS in eine eigene Zeile.
include_semicolons bool false Hängen Sie Semikolons an Anweisungen an.
keyword_casing enum Uppercase Lowercase PascalCase Uppercase Groß-/Kleinschreibung von Schlüsselwörtern
preserve_comments bool true Kommentare während der Formatierung beibehalten.

Einrücken

Key Typ Default Beschreibung
indent_set_clause bool false SET Klausel in UPDATE Anweisungen einrücken.
indentation_size int (1–8) 4 Leerzeichen pro Einzugsebene.
indent_view_body bool false Textkörper VIEW einrücken.

Mehrzeilig

Key Typ Default Beschreibung
multiline_insert_sources_list bool true INSERT Quellen als mehrzeilig.
multiline_insert_targets_list bool true INSERT Spalten als mehrzeilig.
multiline_select_elements_list bool true SELECT Spalten als mehrzeilig.
multiline_set_clause_items bool true SET Elemente als mehrzeilig.
multiline_view_columns_list bool true VIEW Spalten mehrzeilig.
multiline_where_predicates_list bool true WHERE Prädikate als mehrzeilig.

Neue Zeile

Key Typ Default
new_line_before_close_parenthesis_in_multiline_list bool true
new_line_before_from_clause bool true
new_line_before_group_by_clause bool true
new_line_before_having_clause bool true
new_line_before_join_clause bool true
new_line_before_offset_clause bool true
new_line_before_open_parenthesis_in_multiline_list bool false
new_line_before_order_by_clause bool true
new_line_before_output_clause bool true
new_line_before_where_clause bool true
new_line_before_window_clause bool true
newline_formatted_check_constraint bool false
newline_formatted_index_definition bool false
num_newlines_after_statement int (0–5) 1

Abstand

Key Typ Default Beschreibung
space_between_data_type_and_parameters bool true Leerraum zwischen Datentyp und Parens, z. B. VARCHAR (255)
space_between_parameters_in_data_type bool true Abstand zwischen Params in Datentypen

Beispiel für .editorconfig

Das folgende Beispiel zeigt eine .editorconfig Datei, die einige häufig angepasste Optionen festlegt. Alle in der Datei nicht angegebenen Eigenschaften greifen auf die SSMS-Einstellungen zurück.

[*.sql]
keyword_casing                                      = lowercase
include_semicolons                                  = true
indentation_size                                    = 2
multiline_select_elements_list                      = true
new_line_before_from_clause                         = true

Feedback teilen

Die SQL-Formatierungsfunktionalität in SSMS basiert auf der Open-Source-.NET-Bibliothek für die T-SQL-Analyse, ScriptDOM. Verwenden Sie das GitHub Problemsystem im ScriptDOM-Repository, um Ideen und Herausforderungen zu besprechen. Pull Requests sind willkommen.

Senden Sie SSMS-Feedback über Hilfe>senden Feedback in SSMS oder über den Entwicklercommunity Feedbackkanal.