Formatera Transact-SQL i MSSQL-tillägget för Visual Studio Code

Konsekvent formatering gör Transact-SQL (T-SQL) enklare att läsa, granska och underhålla, särskilt när flera personer bidrar till samma kodbas. MSSQL-tillägget för Visual Studio Code inkluderar en inbyggd SQL-formatter som du kan köra på begäran, konfigurera för automatisk formatering vid sparning och anpassa via Visual Studio Code-inställningar.

T-SQL-formateringsfunktionen i MSSQL-tillägget är byggd på ScriptDOM, ett öppet .NET-bibliotek som tolkar T-SQL och genererar skript baserade på abstrakta syntaxträd.

Formatera på begäran

Du kan formatera T-SQL i vilket redigeringsfönster som helst. Formattern fungerar på hela dokumentet eller bara på den text du väljer.

För att formatera T-SQL på begäran, använd en av följande metoder:

  • Kontextmeny: Högerklicka i ett T-SQL-redigeringsfönster och välj Format Document eller Format Select.

  • Kommandopalett: Kör formateringsdokument eller formatval.

  • Tangentbordsgenväg: För Formatera dokument, tryck på Shift+Alt+F på Windows och Linux, eller Shift-alternativ++F på macOS. För formatval, tryck Ctrl+K, Ctrl+F på Windows och Linux, eller Cmd+K, Cmd+F på macOS.

Format vid sparande

I Visual Studio Code styr standardeditorinställningen formatet vid sparning, istället för en dedikerad MSSQL-formateringsinställning.

Använd följande inställningar i din Visual Studio Code-fil settings.json för att automatiskt formatera T-SQL varje gång du sparar en fil:

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

Konfigurera formateringsalternativ

Konfigurera formatering i Visual Studio Code Settings UI eller i användar- eller arbetsytansettings.json.

I inställningseditorn, sök efter Mssql>Format för att se de tillgängliga alternativen. I settings.json, använd motsvarande mssql.format.* inställningar.

Inställningar som stöds

Följande inställningar konfigurerar SQL-formatören.

Allmänt

Inställning Type Standardinställning Description
mssql.format.showParseErrorNotification bool true Visa en notis när formatteraren inte kan tolka T-SQL:en fullt ut.
mssql.format.options.sqlVersion enum sql170 T-SQL-versionen används för att tolka och generera formaterade skript.
mssql.format.options.sqlEngineType enum all Database Engine-typ som används för att tolka och generera formaterade skript. Giltiga värden är all, standalone och sqlAzure.

Justering

Inställning Type Standardinställning Description
mssql.format.options.alignClauseBodies bool true Justera brödtexten i FROM, WHERE, GROUP BY och liknande klausuler.
mssql.format.options.alignColumnDefinitionFields bool true Justera kolumndefinitionsfält, såsom namn, datatyper och begränsningar.
mssql.format.options.alignSetClauseItem bool true Justera SET satselement i UPDATE satser.
mssql.format.options.clauseBodyAlignment enum aligned Behåll klausulkroppar aligned med deras nyckelord eller placera dem på nästa rad som indented.

Förråd och identifierare

Inställning Type Standardinställning Description
mssql.format.options.builtInFunctionCasing enum preserve Casing-stil för stödda inbyggda funktionsnamn, såsom GETDATE och COALESCE. Giltiga värden är preserve, uppercase, lowercase och pascalCase.
mssql.format.options.identifierBracketing enum preserve Bevara, lägg till eller ta bort valfria hakparenteser runt identifierare. Giltiga värden är preserve, includeBrackets och excludeBrackets. Obligatoriska fästen behålls.
mssql.format.options.identifierCasing enum preserve Kapselstil för objektidentifierare. Giltiga värden är preserve, uppercase, lowercase och pascalCase.
mssql.format.options.keywordCasing enum uppercase Nyckelordsformat. Giltiga värden är uppercase, lowercase och pascalCase.

Paths

Inställning Type Standardinställning Description
mssql.format.options.allowExternalLanguagePaths bool true Tillåt innehåll på externt språk att använda filvägar.
mssql.format.options.allowExternalLibraryPaths bool true Tillåt externt biblioteksinnehåll att använda filsökvägar.

Formatera

Inställning Type Standardinställning Description
mssql.format.options.asKeywordOnOwnLine bool true Placera AS på sin egen linje.
mssql.format.options.columnAliasStyle enum asKeyword Formatera kolumnaliaser med AS, ett likhetstecken, eller deras ursprungliga syntax. Giltiga värden är asKeyword, equalsSign och preserve.
mssql.format.options.commaPlacement enum trailing Placera kommatecken i slutet av listobjekten (trailing) eller i början av nästa punkt (leading).
mssql.format.options.leadingCommaSpaceCount integer 1 Antal mellanslag efter en ledande komma. Giltiga värden är 0 och 1.
mssql.format.options.persistTrailingGo bool false Bevara efterföljande GO batchseparatorer från det ursprungliga skriptet.
mssql.format.options.preserveComments bool true Bevara kommentarer under formateringen.
mssql.format.options.terminateBlockStatements bool false Lägg till semikolon efter BEGIN...END- och TRY...CATCH-block.

Indrag

Inställning Type Standardinställning Description
mssql.format.options.indentSetClause bool false Gör indrag för satser SET i UPDATE-uttryck.
mssql.format.options.indentViewBody bool false Inbuktningar VIEW av kroppar.

Flera ledningar

Inställning Type Standardinställning Description
mssql.format.options.multilineGroupByElementsList bool false Formatera GROUP BY element som en flerradslista.
mssql.format.options.multilineHavingPredicatesList bool true Formatera HAVING predikat separerade med AND eller OR på flera rader.
mssql.format.options.multilineInsertSourcesList bool true Formatera INSERT källor som flerradslistor.
mssql.format.options.multilineInsertTargetsList bool true Formatera INSERT kolumner som flerradslistor.
mssql.format.options.multilineInValuesList bool false Formatera värden i ett IN predikat som en flerradslista.
mssql.format.options.multilineNestedFunctionCalls bool false Formatera nästlade funktionsanrop på separata indragna rader samtidigt som isolerade funktionsanrop hålls på en och samma linje.
mssql.format.options.multilineOrderByElementsList bool false Formatera ORDER BY element som en flerradslista.
mssql.format.options.multilinePartitionByElementsList bool false Formatera PARTITION BY element i fönsterspecifikationer som en flerradslista.
mssql.format.options.multilineProcedureParametersList bool false Formateringsprocedurer och funktionsparametrar på separata rader.
mssql.format.options.multilineSelectElementsList bool true Formatera SELECT kolumner som flerradslistor.
mssql.format.options.multilineSetClauseItems bool true Formatera SET klausulobjekt som flerradslistor.
mssql.format.options.multilineViewColumnsList bool true Formatera VIEW kolumner som flerradslistor.
mssql.format.options.multilineWherePredicatesList bool true Formatera WHERE predikat som flerradslistor.
mssql.format.options.multilineWithOptionsList bool false Formatera stödda WITH- och OPTION-satsvärden på separata rader.

Ny rad

Inställning Type Standardinställning Description
mssql.format.options.newLineAfterJoinKeyword bool true Placera den sammanfogade tabellkällan på en ny rad efter JOIN nyckelordet.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Placera en ny rad före slutparentesen i en flerradslista.
mssql.format.options.newLineBeforeFromClause bool true Placera en ny rad före klausulen FROM .
mssql.format.options.newLineBeforeGroupByClause bool true Placera en ny rad före klausulen GROUP BY .
mssql.format.options.newLineBeforeHavingClause bool true Placera en ny rad före klausulen HAVING .
mssql.format.options.newLineBeforeJoinClause bool true Placera en ny rad före JOIN klausuler.
mssql.format.options.newLineBeforeOffsetClause bool true Placera en ny rad före klausulen OFFSET .
mssql.format.options.newLineBeforeOnClause bool true Placera ON-villkoret för en join på en separat rad.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Placera en ny rad före den inledande parentesen i en flerradslista.
mssql.format.options.newLineBeforeOrderByClause bool true Placera en ny rad före klausulen ORDER BY .
mssql.format.options.newLineBeforeOutputClause bool true Placera en ny rad före klausulen OUTPUT .
mssql.format.options.newLineBeforeWhereClause bool true Placera en ny rad före klausulen WHERE .
mssql.format.options.newLineBeforeWindowClause bool true Placera en ny rad före klausulen WINDOW .
mssql.format.options.newlineFormattedCheckConstraint bool false Placera CHECK-satsen i ett villkor på en egen rad.
mssql.format.options.newLineFormattedIndexDefinition bool false Placera UNIQUE, INCLUDE, och WHERE delar av definitioner av inline-index på separata rader.

Formulering och batchavstånd

Inställning Type Standardinställning Description
mssql.format.options.numNewlinesAfterBatches integer 1 Antal radbrytningar efter varje GO batchavgränsare, från 0 till 5.
mssql.format.options.numNewlinesAfterBatchStatement integer 2 Antal radbrytningar efter varje instruktion på toppnivå i en batch, från 0 till 5.
mssql.format.options.numNewlinesAfterStatement integer 1 Antal radbrytningar efter varje sats, från och med 05.

Spacing

Inställning Type Standardinställning Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Sätt in ett mellanrum mellan en datatyp och dess parenteser, till exempel VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Sätt in mellanrum mellan parametrar i en datatyp, till exempel DECIMAL (10, 2).

Exempelinställningsfil

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

Ställ in standardformateraren

För att sätta MSSQL-tillägget som standard, välj Konfigurera standardformat...>SQL Server (mssql), eller lägg till följande konfiguration till settings.json:

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