Formatiere Transact-SQL in der MSSQL-Erweiterung für Visual Studio Code

Durch konsistente Formatierung können Transact-SQL (T-SQL) leichter gelesen, überprüft und verwaltet werden, insbesondere, wenn mehrere Personen zur gleichen Codebasis beitragen. Die MSSQL-Erweiterung für Visual Studio Code beinhaltet eine integrierte SQL-Formatierung (Vorschau), die Sie auf Abruf ausführen, für automatische Formatierung beim Speichern konfigurieren und über die Visual Studio Code-Einstellungen anpassen können.

Die T-SQL-Formatierungsfunktionalität in der MSSQL-Erweiterung basiert auf ScriptDOM, einer Open-Source-.NET-Bibliothek, die T-SQL analysiert und Skripte basierend auf abstrakten Syntaxbäumen generiert.

Bei Bedarf formatieren

Du kannst T-SQL in jedem Editor-Fenster formatieren. Der Formatter wirkt auf das gesamte Dokument oder nur auf den von Ihnen ausgewählten Text.

Um T-SQL auf Abruf zu formatieren, verwenden Sie eine der folgenden Methoden:

  • Kontextmenü: Klicken Sie in einem T-SQL-Editorfenster mit der rechten Maustaste, und wählen Sie Dokument formatieren oder Auswahl formatieren.

  • Befehlspalette: Format-Dokument - oder Formatauswahl ausführen.

  • Tastenkombination: Für das Formatieren des Dokuments drücken Sie auf Windows und Linux Shift+Alt+F oder auf macOS dieShift-Option++F. Zur Formatauswahl drücken Sie Strg+K, Strg+F auf Windows und Linux oder Cmd+K, Cmd+F auf macOS.

Beim Speichern formatieren

In Visual Studio Code steuert die Standard-Editor-Einstellung das Format beim Speichern, anstatt einer dedizierten MSSQL-Formatter-Einstellung.

Verwenden Sie die folgenden Einstellungen in Ihrer Visual Studio Code-Dateisettings.json, um T-SQL automatisch zu formatieren, sobald Sie eine Datei speichern:

{
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Konfigurieren von Formatierungsoptionen

Konfigurieren Sie das Format in der Visual Studio Code Settings UI oder im Benutzer- oder Arbeitsbereichsettings.json.

Im Einstellungseditor suchen Sie nach Mssql>Format, um die verfügbaren Optionen anzuzeigen. In settings.json verwenden Sie die entsprechenden mssql.format.*-Einstellungen.

  • Das Vorschau-Formatter ist standardmäßig aktiviert. Seine Optionen nutzen den Namensraum mssql.format.options.* .

  • Die fünf vorhandenen Formatter-Einstellungen bleiben verfügbar, wenn die Vorschau-Formatter aktiviert ist. Der Vorschauformatierer fügt die Einstellungen mssql.format.options.* hinzu.

Screenshot der SQL-Formatter-Einstellungen im Visual Studio Code Settings Editor.

Unterstützte Einstellungen

Die Tabellen listen bestehende Formatter-Einstellungen auf, gefolgt von Vorschau-Formatter-Einstellungen.

Bestehende Formatter-Einstellungen

Setting Typ Vorgabe Description
mssql.format.alignColumnDefinitionsInColumns bool false Spaltendefinitionen in Spalten ausrichten.
mssql.format.datatypeCasing enum none Formatiere Datentypen als uppercase, lowercase, oder none (nicht formatiert).
mssql.format.keywordCasing enum none Formatiere Schlüsselwörter als uppercase, lowercase, oder none (nicht formatiert).
mssql.format.placeCommasBeforeNextStatement bool false Setze Kommas an den Anfang jedes Elements in einer Liste, zum Beispiel , mycolumn2, statt am Ende, zum Beispiel mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Setze Referenzen in eine SELECT Aussage auf getrennte Zeilen. Für SELECT C1, C2 FROM T1, stehen sowohl C1 als auch C2 auf getrennten Linien.

Vorschau-Formatter-Einstellungen

Diese Einstellungen mssql.format.options.* werden zusätzlich zu den bestehenden Formatter-Einstellungen hinzugefügt, wenn du die Vorschau-Formatter-Einstellung aktivierst.

Allgemein

Setting Typ Vorgabe Description
mssql.format.enablePreviewFormatter bool true Verwenden Sie das SQL-Formatter (Vorschau).
mssql.format.showParseErrorNotification bool true Zeigt eine Benachrichtigung an, wenn der Formatter das T-SQL nicht vollständig parsen kann.
mssql.format.options.sqlVersion enum sql170 T-SQL-Version, die zum Parsen und Erstellen formatierter Skripte verwendet wird.
mssql.format.options.sqlEngineType enum all Datenbank-Engine-Typ, der zum Parsen und Erstellen formatierter Skripte verwendet wird. Gültige Werte sind all, standaloneund sqlAzure.

Ausrichtung

Setting Typ Vorgabe Description
mssql.format.options.alignClauseBodies bool true Textkörper von FROM, WHERE, GROUP BY und ähnlichen Klauseln ausrichten.
mssql.format.options.alignColumnDefinitionFields bool true Ausrichten von Spaltendefinitionsfeldern, z. B. Name, Typ und Einschränkungen.
mssql.format.options.alignSetClauseItem bool true Ausrichten von SET Klauselelementen in UPDATE Anweisungen.

Pfade

Setting Typ Vorgabe Description
mssql.format.options.allowExternalLanguagePaths bool true Erlauben Sie externen Sprachinhalten, Dateipfade zu verwenden.
mssql.format.options.allowExternalLibraryPaths bool true Erlaube externen Bibliotheksinhalten, Dateipfade zu verwenden.

Formatierung

Setting Typ Vorgabe Description
mssql.format.options.asKeywordOnOwnLine bool true Setzen Sie AS in eine eigene Zeile.
mssql.format.options.keywordCasing enum uppercase Groß-/Kleinschreibung von Schlüsselwörtern Gültige Werte sind uppercase, lowercaseund pascalCase.
mssql.format.options.preserveComments bool true Kommentare während der Formatierung beibehalten.
mssql.format.options.numNewlinesAfterStatement int 1 Anzahl der Zeilenumbrüche nach jeder Aussage, von 0 über 5.

Einrücken

Setting Typ Vorgabe Description
mssql.format.options.indentSetClause bool false SET Klausel in UPDATE Anweisungen einrücken.
mssql.format.options.indentViewBody bool false Textkörper VIEW einrücken.

Mehrzeilig

Setting Typ Vorgabe Description
mssql.format.options.multilineInsertSourcesList bool true INSERT Quellen als mehrzeilig.
mssql.format.options.multilineInsertTargetsList bool true INSERT Spalten als mehrzeilig.
mssql.format.options.multilineSelectElementsList bool true SELECT Spalten als mehrzeilig.
mssql.format.options.multilineSetClauseItems bool true SET Elemente als mehrzeilig.
mssql.format.options.multilineViewColumnsList bool true VIEW Spalten als mehrzeilig.
mssql.format.options.multilineWherePredicatesList bool true WHERE Prädikate als mehrzeilig.

Neue Zeile

Setting Typ Vorgabe Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Neue Zeile vor der schließenden Klammer in mehrzeiligen Listen.
mssql.format.options.newLineBeforeFromClause bool true Neue Zeile vor Klausel FROM .
mssql.format.options.newLineBeforeGroupByClause bool true Neue Zeile vor Klausel GROUP BY .
mssql.format.options.newLineBeforeHavingClause bool true Neue Zeile vor Klausel HAVING .
mssql.format.options.newLineBeforeJoinClause bool true Neue Zeile vor Klausel JOIN .
mssql.format.options.newLineBeforeOffsetClause bool true Neue Zeile vor Klausel OFFSET .
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Neue Zeile vor offenen Klammern in der mehrzeiligen Liste.
mssql.format.options.newLineBeforeOrderByClause bool true Neue Zeile vor Klausel ORDER BY .
mssql.format.options.newLineBeforeOutputClause bool true Neue Zeile vor Klausel OUTPUT .
mssql.format.options.newLineBeforeWhereClause bool true Neue Zeile vor Klausel WHERE .
mssql.format.options.newLineBeforeWindowClause bool true Neue Zeile vor Klausel WINDOW .
mssql.format.options.newlineFormattedCheckConstraint bool false Zeilenformat-Einschränkung CHECK .
mssql.format.options.newLineFormattedIndexDefinition bool false Mit Zeilenumbrüchen formatierte Indexdefinition.

Spacing

Setting Typ Vorgabe Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Raum zwischen Datentyp und Klammern, zum Beispiel VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Abstand zwischen den Parametern in Datentypen.

Beispiel-Einstellungsdatei

{
  "mssql.format.options.keywordCasing": "lowercase",
  "mssql.format.options.alignClauseBodies": false,
  "mssql.format.options.numNewlinesAfterStatement": 2,
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Standard-Formatter festlegen

Um die MSSQL-Erweiterung als Standard festzulegen, wählen Sie Standardformatierer konfigurieren...>SQL Server (mssql), oder fügen Sie die folgende Konfiguration zu settings.json hinzu:

{
  "[sql]": {
    "editor.defaultFormatter": "ms-mssql.mssql"
  }
}