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 ein integriertes SQL-Formatter, das Sie auf Abruf ausführen, für automatische Formatierung beim Speichern konfigurieren und über 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.

Unterstützte Einstellungen

Die folgenden Einstellungen konfigurieren das SQL-Formatter.

Allgemein

Setting Typ Vorgabe Description
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 Richten Sie Textkörper von FROM, WHERE, GROUP BY und ähnlichen Klauseln aus.
mssql.format.options.alignColumnDefinitionFields bool true Richten Sie Spaltendefinitionsfelder wie Namen, Datentypen und Einschränkungen aus.
mssql.format.options.alignSetClauseItem bool true Richten Sie SET-Klauselelemente in UPDATE-Anweisungen aus.
mssql.format.options.clauseBodyAlignment enum aligned Behalte Satzkörper aligned mit ihren Schlüsselwörtern oder setze sie in die nächste Zeile als indented.

Gehäuse und Kennungen

Setting Typ Vorgabe Description
mssql.format.options.builtInFunctionCasing enum preserve Gehäuse-Stil für unterstützte integrierte Funktionsnamen, wie GETDATE und COALESCE. Gültige Werte sind preserve, uppercase, lowercase und pascalCase.
mssql.format.options.identifierBracketing enum preserve Erhalte, füge hinzu oder entferne optionale eckige Klammern um die Identifikatoren. Gültige Werte sind preserve, includeBracketsund excludeBrackets. Erforderliche Klammern werden beibehalten.
mssql.format.options.identifierCasing enum preserve Gehäuse-Stil für Objektidentifikatoren. Gültige Werte sind preserve, uppercase, lowercase und pascalCase.
mssql.format.options.keywordCasing enum uppercase Groß-/Kleinschreibung von Schlüsselwörtern. Gültige Werte sind uppercase, lowercaseund pascalCase.

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.columnAliasStyle enum asKeyword Formatiere Spaltenaliase mit AS, einem Gleichheitszeichen oder ihrer ursprünglichen Syntax. Gültige Werte sind asKeyword, equalsSignund preserve.
mssql.format.options.commaPlacement enum trailing Setze Kommas am Ende der Listeneinträge (trailing) oder am Anfang des nächsten Elements (leading).
mssql.format.options.leadingCommaSpaceCount integer 1 Anzahl der Leerzeichen nach einem führenden Komma. Gültige Werte sind 0 und 1.
mssql.format.options.persistTrailingGo bool false Behalten Sie nachlaufende GO Batch-Separatoren vom ursprünglichen Skript bei.
mssql.format.options.preserveComments bool true Kommentare während der Formatierung beibehalten.
mssql.format.options.terminateBlockStatements bool false Füge nach den Blöcken BEGIN...END und TRY...CATCH Semikolon-Abschlüsse hinzu.

Einrücken

Setting Typ Vorgabe Description
mssql.format.options.indentSetClause bool false Klauseln SET in UPDATE Anweisungen einrücken.
mssql.format.options.indentViewBody bool false Leichen eindrücken VIEW .

Mehrzeilig

Setting Typ Vorgabe Description
mssql.format.options.multilineGroupByElementsList bool false Formatiere GROUP BY Elemente als Mehrzeilenliste.
mssql.format.options.multilineHavingPredicatesList bool true AND durch OR oder HAVING getrennte Prädikate auf mehrere Zeilen formatieren.
mssql.format.options.multilineInsertSourcesList bool true Formatiere INSERT Quellen als mehrzeilige Listen.
mssql.format.options.multilineInsertTargetsList bool true Formatiere INSERT Spalten als mehrzeilige Listen.
mssql.format.options.multilineInValuesList bool false Formatiere Werte in einem IN Prädikat als Mehrzeilenliste.
mssql.format.options.multilineNestedFunctionCalls bool false Formatiere verschachtelte Funktionsaufrufe auf separaten, eingerückten Zeilen, während isolierte Funktionsaufrufe auf einer Zeile bleiben.
mssql.format.options.multilineOrderByElementsList bool false Formatiere ORDER BY Elemente als Mehrzeilenliste.
mssql.format.options.multilinePartitionByElementsList bool false Formatiere PARTITION BY Elemente in Fensterspezifikationen als Mehrzeilenliste.
mssql.format.options.multilineProcedureParametersList bool false Formatieren Sie das Verfahren und die Funktionsparameter auf getrennten Zeilen.
mssql.format.options.multilineSelectElementsList bool true Formatiere SELECT Spalten als mehrzeilige Listen.
mssql.format.options.multilineSetClauseItems bool true Formatiere SET Klauselelemente als mehrzeilige Listen.
mssql.format.options.multilineViewColumnsList bool true Formatiere VIEW Spalten als mehrzeilige Listen.
mssql.format.options.multilineWherePredicatesList bool true WHERE Prädikate als mehrzeilige Listen formatieren.
mssql.format.options.multilineWithOptionsList bool false Format unterstützt WITH und OPTION Klauselwerte auf getrennten Zeilen.

Neue Zeile

Setting Typ Vorgabe Description
mssql.format.options.newLineAfterJoinKeyword bool true Platziere die Quelle der verbundenen Tabelle in eine neue Zeile nach dem JOIN Schlüsselwort.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Platzieren Sie eine neue Zeile vor die abschließende Klammer einer mehrzeiligen Liste.
mssql.format.options.newLineBeforeFromClause bool true Stelle eine neue Zeile vor die Klausel FROM .
mssql.format.options.newLineBeforeGroupByClause bool true Stelle eine neue Zeile vor die Klausel GROUP BY .
mssql.format.options.newLineBeforeHavingClause bool true Stelle eine neue Zeile vor die Klausel HAVING .
mssql.format.options.newLineBeforeJoinClause bool true Setzen Sie eine neue Zeile vor JOIN Klauseln.
mssql.format.options.newLineBeforeOffsetClause bool true Stelle eine neue Zeile vor die Klausel OFFSET .
mssql.format.options.newLineBeforeOnClause bool true Fügen Sie die ON Klausel eines Joins auf eine neue Leitung ein.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Setzen Sie eine neue Zeile vor die erste Klammer einer mehrzeiligen Liste.
mssql.format.options.newLineBeforeOrderByClause bool true Stelle eine neue Zeile vor die Klausel ORDER BY .
mssql.format.options.newLineBeforeOutputClause bool true Stelle eine neue Zeile vor die Klausel OUTPUT .
mssql.format.options.newLineBeforeWhereClause bool true Stelle eine neue Zeile vor die Klausel WHERE .
mssql.format.options.newLineBeforeWindowClause bool true Stelle eine neue Zeile vor die Klausel WINDOW .
mssql.format.options.newlineFormattedCheckConstraint bool false Platziere die CHECK Klausel einer Einschränkung auf eine eigene Zeile.
mssql.format.options.newLineFormattedIndexDefinition bool false Platziere UNIQUE, INCLUDE, und WHERE Teile der Inline-Indexdefinitionen auf getrennte Zeilen.

Aussage und Batch-Abstand

Setting Typ Vorgabe Description
mssql.format.options.numNewlinesAfterBatches integer 1 Anzahl der Zeilenumbrüche nach jedem GO Batch-Separator, von 0 über 5.
mssql.format.options.numNewlinesAfterBatchStatement integer 2 Anzahl der Zeilenumbrüche nach jeder Anweisung der obersten Ebene in einem Stapel, von 0 bis 5.
mssql.format.options.numNewlinesAfterStatement integer 1 Anzahl der Zeilenumbrüche nach jeder Aussage, von 0 über 5.

Spacing

Setting Typ Vorgabe Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Fügen Sie zum Beispiel VARCHAR (255)einen Raum zwischen einem Datentyp und seinen Klammern ein.
mssql.format.options.spaceBetweenParametersInDataType bool true Fügen Sie zum Beispiel DECIMAL (10, 2)Abstände zwischen Parametern in einem Datentyp ein.

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"
  }
}