Formatta Transact-SQL nell'estensione MSSQL per Visual Studio Code

La formattazione coerente semplifica la lettura, la revisione e la manutenzione di Transact-SQL (T-SQL), soprattutto quando più persone contribuiscono alla stessa codebase. L'estensione MSSQL per Visual Studio Code include un formattore SQL integrato che puoi eseguire su richiesta, configurare per la formattazione automatica al salvataggio e personalizzare tramite le impostazioni di Visual Studio Code.

La funzionalità di formattazione T-SQL nell'estensione MSSQL è costruita su ScriptDOM, una libreria open source .NET che analizza T-SQL e genera script basati su alberi di sintassi astratti.

Formattare su richiesta

Puoi formattare T-SQL in qualsiasi finestra dell'editor. Il formatatore funziona sull'intero documento o solo sul testo che scegli.

Per formattare T-SQL su richiesta, utilizza uno dei seguenti metodi:

  • Menu contestuale: clicca con il tasto destro in una finestra di un editor T-SQL e seleziona Formata documento o Selezione formato.

  • Palette di comandi: esegui il documento di formato o la selezione del formato.

  • Scorciatoia da tastiera: Per Formatare il documento, premi Shift+Alt+F su Windows e Linux, oppure Shift+Option+F su macOS. Per la selezione del formato, premi Ctrl+K, Ctrl+F su Windows e Linux, oppure Cmd+K, Cmd+F su macOS.

Formato al salvataggio

In Visual Studio Code, l'impostazione standard dell'editor controlla la formattazione al salvataggio, anziché un'impostazione dedicata del formattatore MSSQL.

Usa le seguenti impostazioni nel tuo file Visual Studio Code settings.json per formattare automaticamente T-SQL ogni volta che salvi un file:

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

Configurare le opzioni di formattazione

Configura la formattazione nell'interfaccia utente delle impostazioni di Visual Studio Code oppure nelle impostazioni utente o dell'area di lavoro settings.json.

Nell'editor Impostazioni, cercaFormatoMssql> per visualizzare le opzioni disponibili. In settings.json, utilizza le impostazioni mssql.format.* corrispondenti.

Impostazioni supportate

Le seguenti impostazioni configurano il formattatore SQL.

Generali

Setting Tipo Default Descrzione
mssql.format.showParseErrorNotification bool true Mostra una notifica quando il formatatore non riesce a parizzare completamente il T-SQL.
mssql.format.options.sqlVersion enum sql170 Versione T-SQL utilizzata per analizzare e generare script formattati.
mssql.format.options.sqlEngineType enum all Tipo motore di database utilizzato per parizzare e generare script formattati. I valori validi sono all, standalonee sqlAzure.

Allineamento

Setting Tipo Default Descrzione
mssql.format.options.alignClauseBodies bool true Allineare i corpi di FROM, WHERE, GROUP BY e clausole simili.
mssql.format.options.alignColumnDefinitionFields bool true Allinea i campi di definizione delle colonne, come nomi, tipi di dati e vincoli.
mssql.format.options.alignSetClauseItem bool true Allineare gli elementi di clausola SET nelle istruzioni UPDATE
mssql.format.options.clauseBodyAlignment enum aligned Mantenere i corpi aligned delle clausole con le loro parole chiave oppure posizionarle sulla riga successiva come indented.

Involucro e identificatori

Setting Tipo Default Descrzione
mssql.format.options.builtInFunctionCasing enum preserve Stile di casing per nomi di funzioni integrate supportate, come GETDATE e COALESCE. I valori validi sono preserve, uppercase, lowercase e pascalCase.
mssql.format.options.identifierBracketing enum preserve Preservare, aggiungere o rimuovere i quadri opzionali attorno agli identificatori. I valori validi sono preserve, includeBracketse excludeBrackets. Le parentesi obbligatorie vengono mantenute.
mssql.format.options.identifierCasing enum preserve Stile di involucro per gli identificatori degli oggetti. I valori validi sono preserve, uppercase, lowercase e pascalCase.
mssql.format.options.keywordCasing enum uppercase Stile di scrittura delle parole chiave in maiuscolo/minuscolo. I valori validi sono uppercase, lowercasee pascalCase.

Paths

Setting Tipo Default Descrzione
mssql.format.options.allowExternalLanguagePaths bool true Consentire ai contenuti in lingue esterne di utilizzare i percorsi dei file.
mssql.format.options.allowExternalLibraryPaths bool true Consentire ai contenuti delle librerie esterne di utilizzare percorsi di file.

Formattazione

Setting Tipo Default Descrzione
mssql.format.options.asKeywordOnOwnLine bool true Posiziona AS su una riga separata.
mssql.format.options.columnAliasStyle enum asKeyword Formattare gli alias delle colonne usando AS, un segno uguale o la loro sintassi originale. I valori validi sono asKeyword, equalsSigne preserve.
mssql.format.options.commaPlacement enum trailing Metti le virgole alla fine degli elementi della lista (trailing) o all'inizio dell'elemento successivo (leading).
mssql.format.options.leadingCommaSpaceCount Intero 1 Numero di spazi dopo una virgola iniziale. I valori validi sono 0 e 1.
mssql.format.options.persistTrailingGo bool false Conserva i separatori di batch posteriori GO dallo script originale.
mssql.format.options.preserveComments bool true Mantenere i commenti durante la formattazione.
mssql.format.options.terminateBlockStatements bool false Aggiungi terminatori di punto e virgola dopo i blocchi BEGIN...END e TRY...CATCH.

Indentazione

Setting Tipo Default Descrzione
mssql.format.options.indentSetClause bool false Indentare le clausole SET nelle istruzioni UPDATE.
mssql.format.options.indentViewBody bool false Rientra VIEW i corpi.

Multilinea

Setting Tipo Default Descrzione
mssql.format.options.multilineGroupByElementsList bool false Formatta GROUP BY gli elementi come una lista multilinea.
mssql.format.options.multilineHavingPredicatesList bool true Formata HAVING i predicati separati da AND o OR su più linee.
mssql.format.options.multilineInsertSourcesList bool true Formatta INSERT le fonti come liste multilinea.
mssql.format.options.multilineInsertTargetsList bool true Formatta INSERT le colonne come liste su più righe.
mssql.format.options.multilineInValuesList bool false Formatta i valori in un IN predicato come elenco multilinea.
mssql.format.options.multilineNestedFunctionCalls bool false Formattare le chiamate di funzioni annidate su righe separate e rientrate, mantenendo le chiamate di funzione singole in un'unica riga.
mssql.format.options.multilineOrderByElementsList bool false Formatta ORDER BY gli elementi come una lista multilinea.
mssql.format.options.multilinePartitionByElementsList bool false Formattare gli elementi PARTITION BY nelle specifiche della finestra come elenco su più righe.
mssql.format.options.multilineProcedureParametersList bool false Formattare i parametri della procedura e della funzione su linee separate.
mssql.format.options.multilineSelectElementsList bool true Formatta SELECT le colonne come liste multilinea.
mssql.format.options.multilineSetClauseItems bool true Formatta SET gli elementi della clausola come liste multilinea.
mssql.format.options.multilineViewColumnsList bool true Formatta VIEW le colonne come elenchi su più righe.
mssql.format.options.multilineWherePredicatesList bool true Formatta WHERE i predicati come liste multilinea.
mssql.format.options.multilineWithOptionsList bool false Formattare i valori di clausola supportati WITH e OPTION su righe separate.

Nuova riga

Setting Tipo Default Descrzione
mssql.format.options.newLineAfterJoinKeyword bool true Posiziona la sorgente della tabella unita su una nuova riga dopo la JOIN parola chiave.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Posiziona una nuova riga prima della parentesi finale di una lista multilinea.
mssql.format.options.newLineBeforeFromClause bool true Metti una nuova riga prima della FROM clausola.
mssql.format.options.newLineBeforeGroupByClause bool true Metti una nuova riga prima della GROUP BY clausola.
mssql.format.options.newLineBeforeHavingClause bool true Metti una nuova riga prima della HAVING clausola.
mssql.format.options.newLineBeforeJoinClause bool true Metti una nuova riga prima JOIN delle clausole.
mssql.format.options.newLineBeforeOffsetClause bool true Metti una nuova riga prima della OFFSET clausola.
mssql.format.options.newLineBeforeOnClause bool true Posiziona la ON clausola di un join su una nuova linea.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Metti una nuova riga prima della parentesi iniziale di una lista multilinea.
mssql.format.options.newLineBeforeOrderByClause bool true Metti una nuova riga prima della ORDER BY clausola.
mssql.format.options.newLineBeforeOutputClause bool true Metti una nuova riga prima della OUTPUT clausola.
mssql.format.options.newLineBeforeWhereClause bool true Metti una nuova riga prima della WHERE clausola.
mssql.format.options.newLineBeforeWindowClause bool true Metti una nuova riga prima della WINDOW clausola.
mssql.format.options.newlineFormattedCheckConstraint bool false Inserisci CHECK la clausola di un vincolo su una riga separata.
mssql.format.options.newLineFormattedIndexDefinition bool false Posizionare UNIQUE, INCLUDE, e WHERE porzioni delle definizioni di indice inline su linee separate.

Istruzione e spaziatura dei lotti

Setting Tipo Default Descrzione
mssql.format.options.numNewlinesAfterBatches Intero 1 Numero di interruzioni di linea dopo ogni GO separatore lotto, da 0 fino a 5.
mssql.format.options.numNewlinesAfterBatchStatement Intero 2 Numero di interruzioni di riga dopo ogni istruzione di livello superiore in un lotto, da 0 fino a 5.
mssql.format.options.numNewlinesAfterStatement Intero 1 Numero di interruzioni di riga dopo ogni affermazione, da 0 fino a 5.

Spacing

Setting Tipo Default Descrzione
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Inserire uno spazio tra un tipo di dato e le sue parentesi, ad VARCHAR (255)esempio .
mssql.format.options.spaceBetweenParametersInDataType bool true Inserire spazi tra parametri in un tipo di dato, ad esempio DECIMAL (10, 2).

Esempio di file delle impostazioni

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

Imposta il formatatore predefinito

Per impostare l'estensione MSSQL come predefinita, seleziona Configura Formatter Predefinito...>SQL Server (mssql), oppure aggiungere la seguente configurazione asettings.json:

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