Formatteren Transact-SQL in de MSSQL-extensie voor Visual Studio Code

Consistente opmaak maakt Transact-SQL (T-SQL) gemakkelijker te lezen, te controleren en te onderhouden, met name wanneer meerdere personen bijdragen aan dezelfde codebasis. De MSSQL-extensie voor Visual Studio Code bevat een ingebouwde SQL-formatie (Preview) die je op aanvraag kunt uitvoeren, kunt instellen voor automatische opmaak bij het opslaan en kunt aanpassen via Visual Studio Code-instellingen.

De T-SQL-formatteringsfunctionaliteit in de MSSQL-extensie is gebouwd op ScriptDOM, een open-source .NET-bibliotheek die T-SQL parseert en scripts genereert op basis van abstracte syntaxisbomen.

Formattering op aanvraag

Je kunt T-SQL in elk editorvenster formatteren. De formatter werkt op het hele document of alleen op de tekst die je selecteert.

Om T-SQL op aanvraag te formatteren, gebruik een van de volgende methoden:

  • Contextmenu: Klik met de rechtermuisknop in een T-SQL-editorvenster en selecteer Document formatteren of Formaatselectie.

  • Command Palette: Voer Document opmaken of Selectie opmaken uit.

  • Sneltoets: Voor Document formatteren drukt u op Shift+Alt+F in Windows en Linux, of op macOS op Shift+Option+F. Voor formaatselectie druk je op Ctrl+K, Ctrl+F op Windows en Linux, of op Cmd+K, Cmd+F op macOS.

Opmaak bij opslaan

In Visual Studio Code regelt de standaard editorinstelling het formaat bij het opslaan, in plaats van een speciale MSSQL-formatinstelling.

Gebruik de volgende instellingen in je Visual Studio Code-bestand settings.json om T-SQL automatisch te formatteren telkens wanneer je een bestand opslaat:

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

Opmaakopties configureren

Configureer de opmaakinstellingen in de instellingeninterface van Visual Studio Code of in gebruikers- of werkruimte-settings.json.

Zoek in de instellingeneditor naar Mssql>Format om de beschikbare opties te bekijken. In settings.json, gebruik de bijbehorende mssql.format.* instellingen.

  • De preview-formatter is standaard ingeschakeld. De opties gebruiken de mssql.format.options.* naamruimte.

  • De vijf bestaande formatter-instellingen blijven beschikbaar wanneer de preview-formatter is ingeschakeld. De preview-formatter voegt de mssql.format.options.* instellingen toe.

Screenshot van de SQL-formatterinstellingen in de Visual Studio Code Settings editor.

Ondersteunde instellingen

De tabellen geven bestaande formatterinstellingen weer gevolgd door preview-formatterinstellingen.

Bestaande formatter-instellingen

Setting Type Default Description
mssql.format.alignColumnDefinitionsInColumns bool false Lijn kolomdefinities uit in kolommen.
mssql.format.datatypeCasing enum none Formatteer datatypes als uppercase, lowercase, of none (niet geformatteerd).
mssql.format.keywordCasing enum none Formatteren trefwoorden als uppercase, lowercase, of none (niet geformatteerd).
mssql.format.placeCommasBeforeNextStatement bool false Plaats komma's aan het begin van elk item in een lijst, bijvoorbeeld , mycolumn2, in plaats van aan het einde, bijvoorbeeld mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Plaats referenties in een SELECT verklaring op aparte regels. Voor SELECT C1, C2 FROM T1, liggen zowel C1 als C2 op aparte lijnen.

Voorbeeld van de opmaakinstellingen

Deze mssql.format.options.* instellingen worden bovenop de bestaande formatter-instellingen gevoegd wanneer je de preview-formatter-instellingen inschakelt.

Algemeen

Setting Type Default Description
mssql.format.enablePreviewFormatter bool true Gebruik de SQL-formatter (Preview).
mssql.format.showParseErrorNotification bool true Toon een melding wanneer de formatter de T-SQL niet volledig kan parsen.
mssql.format.options.sqlVersion enum sql170 T-SQL-versie gebruikt om opgemaakte scripts te parsen en te genereren.
mssql.format.options.sqlEngineType enum all Database Engine-type gebruikt om opgemaakte scripts te parsen en te genereren. Geldige waarden zijn all, standalone en sqlAzure.

Uitlijning

Setting Type Default Description
mssql.format.options.alignClauseBodies bool true Lichamen van FROM, WHERE, GROUP BY en vergelijkbare clausules uitlijnen.
mssql.format.options.alignColumnDefinitionFields bool true Kolomdefinitievelden, zoals naam, type en beperkingen, uitlijnen.
mssql.format.options.alignSetClauseItem bool true Lijn SET clausule-items uit in UPDATE statements.

Paths

Setting Type Default Description
mssql.format.options.allowExternalLanguagePaths bool true Laat externe taalinhoud bestandspaden gebruiken.
mssql.format.options.allowExternalLibraryPaths bool true Laat externe bibliotheekinhoud bestandspaden gebruiken.

Opmaak

Setting Type Default Description
mssql.format.options.asKeywordOnOwnLine bool true Plaats AS op een aparte regel.
mssql.format.options.keywordCasing enum uppercase Stijl voor trefwoordbehuizing. Geldige waarden zijn uppercase, lowercase en pascalCase.
mssql.format.options.preserveComments bool true Opmerkingen behouden tijdens de opmaak.
mssql.format.options.numNewlinesAfterStatement int 1 Aantal regelafbrekingen na elke stelling, van 0 tot en met 5.

Inspringing

Setting Type Default Description
mssql.format.options.indentSetClause bool false Clausule SET laten inspringen in UPDATE instructies.
mssql.format.options.indentViewBody bool false Hoofdtekst laten inspringen VIEW .

Meerdere regels

Setting Type Default Description
mssql.format.options.multilineInsertSourcesList bool true INSERT bronnen als meerdere regels.
mssql.format.options.multilineInsertTargetsList bool true INSERT kolommen als meerdere regels.
mssql.format.options.multilineSelectElementsList bool true SELECT kolommen als meerdere regels.
mssql.format.options.multilineSetClauseItems bool true SET items als meerdere regels.
mssql.format.options.multilineViewColumnsList bool true VIEW kolommen als meerdere regels.
mssql.format.options.multilineWherePredicatesList bool true WHERE predikaten als meerregelig.

Nieuwe regel

Setting Type Default Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Nieuwe regel voor sluitende haakjes in meerlijnige lijst.
mssql.format.options.newLineBeforeFromClause bool true Nieuwe regel vóór FROM clausule.
mssql.format.options.newLineBeforeGroupByClause bool true Nieuwe regel vóór GROUP BY clausule.
mssql.format.options.newLineBeforeHavingClause bool true Nieuwe regel vóór HAVING clausule.
mssql.format.options.newLineBeforeJoinClause bool true Nieuwe regel vóór JOIN clausule.
mssql.format.options.newLineBeforeOffsetClause bool true Nieuwe regel vóór OFFSET clausule.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Nieuwe regel vóór open haakjes in meerlijnige lijst.
mssql.format.options.newLineBeforeOrderByClause bool true Nieuwe regel vóór ORDER BY clausule.
mssql.format.options.newLineBeforeOutputClause bool true Nieuwe regel vóór OUTPUT clausule.
mssql.format.options.newLineBeforeWhereClause bool true Nieuwe regel vóór WHERE clausule.
mssql.format.options.newLineBeforeWindowClause bool true Nieuwe regel vóór WINDOW clausule.
mssql.format.options.newlineFormattedCheckConstraint bool false Regelnieuwe opgemaakte CHECK beperking.
mssql.format.options.newLineFormattedIndexDefinition bool false Definitie van een indexcode met een nieuwe regel.

Spacing

Setting Type Default Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Ruimte tussen datatype en haakjes, bijvoorbeeld VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Ruimte tussen parameters in datatypen.

Voorbeeldinstellingenbestand

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

Stel de standaard formattering in

Om de MSSQL-extensie als standaard in te stellen, kies je Configure Default Formatter...>SQL Server (mssql), of voeg de volgende configuratie toe aansettings.json:

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