Formatez Transact-SQL dans l’extension MSSQL pour Visual Studio Code

La mise en forme cohérente facilite la lecture, la révision et la maintenance des Transact-SQL (T-SQL), en particulier lorsque plusieurs personnes contribuent au même codebase. L’extension MSSQL pour Visual Studio Code inclut un formateur SQL intégré que vous pouvez exécuter à la demande, configurer pour un formatage automatique sur la sauvegarde, et personnaliser via les paramètres de Visual Studio Code.

La fonctionnalité de mise en forme T-SQL dans l’extension MSSQL est construite sur ScriptDOM, une bibliothèque .NET open source qui analyse T-SQL et génère des scripts basés sur des arbres de syntaxe abstraits.

Format à la demande

Vous pouvez formater T-SQL dans n’importe quelle fenêtre d’éditeur. Le formateur fonctionne sur l’ensemble du document ou uniquement sur le texte que vous sélectionnez.

Pour formater T-SQL à la demande, utilisez l’une des méthodes suivantes :

  • Menu contextuel : Faites un clic droit dans une fenêtre d’éditeur T-SQL et sélectionnez Formater document ou Sélection de format.

  • Palette de commandes : exécuter un document de format ou une sélection de format.

  • Raccourci clavier : Pour Formater le document, appuyez sur Shift+Alt+F sur Windows et Linux, ou surl’option+Shift+F sur macOS. Pour la sélection du format, appuyez sur Ctrl+K, Ctrl+F sur Windows et Linux, ou Cmd+K, Cmd+F sur macOS.

Formater à l’enregistrement

Dans Visual Studio Code, le réglage standard de l’éditeur contrôle le format lors de la sauvegarde, plutôt qu’un paramètre dédié MSSQL de formateur.

Utilisez les paramètres suivants dans votre fichier Visual Studio Code settings.json pour formater automatiquement T-SQL chaque fois que vous sauvegardez un fichier :

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

Configurer les options de mise en forme

Configurez la mise en forme dans l’interface utilisateur des paramètres de Visual Studio Code ou dans les paramètres utilisateur ou d’espace de travail settings.json.

Dans l’éditeur de Paramètres, recherchez Mssql>Format pour voir les options disponibles. Dans settings.json, utilisez les paramètres correspondants de mssql.format.*.

Paramètres pris en charge

Les paramètres suivants configurent le formateur SQL.

General

Setting Catégorie Default Description
mssql.format.showParseErrorNotification bool true Affichez une notification lorsque le formateur ne parvient pas à analyser complètement le T-SQL.
mssql.format.options.sqlVersion enum sql170 La version T-SQL servait à analyser et générer des scripts formatés.
mssql.format.options.sqlEngineType enum all Type Moteur de base de données utilisé pour analyser et générer des scripts formatés. Les valeurs valides sont all, standaloneet sqlAzure.

Alignement

Setting Catégorie Default Description
mssql.format.options.alignClauseBodies bool true Aligner les corps de FROM, WHERE, GROUP BY et des clauses similaires.
mssql.format.options.alignColumnDefinitionFields bool true Alignez les champs de définition de colonnes, tels que les noms, les types de données et les contraintes.
mssql.format.options.alignSetClauseItem bool true Aligner les éléments de clause SET dans les instructions UPDATE.
mssql.format.options.clauseBodyAlignment enum aligned Gardez les corps aligned des clauses avec leurs mots-clés ou placez-les sur la ligne suivante comme indented.

Boîtier et identifiants

Setting Catégorie Default Description
mssql.format.options.builtInFunctionCasing enum preserve Style de boîtier pour les noms de fonctions intégrés pris en charge, tels que GETDATE et COALESCE. Les valeurs valides sont preserve, uppercase, lowercase et pascalCase.
mssql.format.options.identifierBracketing enum preserve Préserver, ajouter ou supprimer des crochets optionnels autour des identifiants. Les valeurs valides sont preserve, includeBracketset excludeBrackets. Les crochets obligatoires sont conservés.
mssql.format.options.identifierCasing enum preserve Style de boîtier pour les identifiants d’objets. Les valeurs valides sont preserve, uppercase, lowercase et pascalCase.
mssql.format.options.keywordCasing enum uppercase Style de casse des mots clés. Les valeurs valides sont uppercase, lowercaseet pascalCase.

Chemins

Setting Catégorie Default Description
mssql.format.options.allowExternalLanguagePaths bool true Permettre au contenu des langues externes d’utiliser des chemins de fichiers.
mssql.format.options.allowExternalLibraryPaths bool true Permettre au contenu externe des bibliothèques d’utiliser les chemins de fichiers.

Formatting

Setting Catégorie Default Description
mssql.format.options.asKeywordOnOwnLine bool true Placez AS sur une ligne distincte.
mssql.format.options.columnAliasStyle enum asKeyword Formatez les aliases de colonnes en utilisant AS, un signe égal, ou leur syntaxe d’origine. Les valeurs valides sont asKeyword, equalsSignet preserve.
mssql.format.options.commaPlacement enum trailing Placez les virgules à la fin des éléments de la liste (trailing) ou au début de l’élément suivant (leading).
mssql.format.options.leadingCommaSpaceCount integer 1 Nombre d’espaces après une virgule en tête. Les valeurs valides sont 0 et 1.
mssql.format.options.persistTrailingGo bool false Conservez les séparateurs de lots GO de fin du script original.
mssql.format.options.preserveComments bool true Conservez les commentaires pendant la mise en forme.
mssql.format.options.terminateBlockStatements bool false Ajoutez des terminateurs en point-virgule après BEGIN...END et TRY...CATCH des blocs.

Mise en retrait

Setting Catégorie Default Description
mssql.format.options.indentSetClause bool false Mettez en retrait les clauses SET dans les instructions UPDATE.
mssql.format.options.indentViewBody bool false Mettre en retrait les corps VIEW.

Multiline

Setting Catégorie Default Description
mssql.format.options.multilineGroupByElementsList bool false Formatez GROUP BY les éléments sous forme de liste multiligne.
mssql.format.options.multilineHavingPredicatesList bool true Formatez HAVING les prédicats séparés par AND ou OR sur plusieurs lignes.
mssql.format.options.multilineInsertSourcesList bool true Formatez INSERT les sources sous forme de listes multilignes.
mssql.format.options.multilineInsertTargetsList bool true Formatez INSERT les colonnes en listes multilignes.
mssql.format.options.multilineInValuesList bool false Formatez les valeurs d’un IN prédicat sous forme de liste multiligne.
mssql.format.options.multilineNestedFunctionCalls bool false Formatez les appels de fonctions imbriqués sur des lignes indentées séparées tout en gardant des appels de fonctions isolés sur une seule ligne.
mssql.format.options.multilineOrderByElementsList bool false Formatez ORDER BY les éléments sous forme de liste multiligne.
mssql.format.options.multilinePartitionByElementsList bool false Formatez les éléments des spécifications de fenêtre en liste multiligne PARTITION BY.
mssql.format.options.multilineProcedureParametersList bool false Formatez les paramètres de procédure et de fonction sur des lignes séparées.
mssql.format.options.multilineSelectElementsList bool true Formatez SELECT les colonnes en listes multilignes.
mssql.format.options.multilineSetClauseItems bool true Formatez SET les éléments de la clause sous forme de listes multilignes.
mssql.format.options.multilineViewColumnsList bool true Formatez VIEW les colonnes en listes multilignes.
mssql.format.options.multilineWherePredicatesList bool true Formatez WHERE les prédicats en listes multilignes.
mssql.format.options.multilineWithOptionsList bool false Mettre en forme les valeurs de clause prises en charge WITH et OPTION sur des lignes distinctes.

Nouvelle ligne

Setting Catégorie Default Description
mssql.format.options.newLineAfterJoinKeyword bool true Placez la source de la table jointe sur une nouvelle ligne après le mot-clé JOIN.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Placez une nouvelle ligne avant la parenthèse finale d’une liste multiligne.
mssql.format.options.newLineBeforeFromClause bool true Placez une nouvelle ligne avant la FROM clause.
mssql.format.options.newLineBeforeGroupByClause bool true Placez une nouvelle ligne avant la GROUP BY clause.
mssql.format.options.newLineBeforeHavingClause bool true Placez une nouvelle ligne avant la HAVING clause.
mssql.format.options.newLineBeforeJoinClause bool true Placez une nouvelle ligne avant JOIN les clauses.
mssql.format.options.newLineBeforeOffsetClause bool true Placez une nouvelle ligne avant la OFFSET clause.
mssql.format.options.newLineBeforeOnClause bool true Placez la ON clause d’une jonction sur une nouvelle ligne.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Placez une nouvelle ligne avant la parenthèse d’ouverture d’une liste multiligne.
mssql.format.options.newLineBeforeOrderByClause bool true Placez une nouvelle ligne avant la ORDER BY clause.
mssql.format.options.newLineBeforeOutputClause bool true Placez une nouvelle ligne avant la OUTPUT clause.
mssql.format.options.newLineBeforeWhereClause bool true Placez une nouvelle ligne avant la WHERE clause.
mssql.format.options.newLineBeforeWindowClause bool true Placez une nouvelle ligne avant la WINDOW clause.
mssql.format.options.newlineFormattedCheckConstraint bool false Placez la CHECK condition d’une contrainte sur sa propre ligne.
mssql.format.options.newLineFormattedIndexDefinition bool false Placez UNIQUE, INCLUDE, et WHERE les portions des définitions des indices en ligne sur des lignes séparées.

Espacement des instructions et des traitements par lots

Setting Catégorie Default Description
mssql.format.options.numNewlinesAfterBatches integer 1 Nombre de coupures de ligne après chaque GO séparateur de lot, de 0 jusqu’à 5.
mssql.format.options.numNewlinesAfterBatchStatement integer 2 Nombre de sauts de ligne après chaque instruction de premier niveau dans un lot, de 0 jusqu’à 5.
mssql.format.options.numNewlinesAfterStatement integer 1 Nombre de sauts de ligne après chaque énoncé, de 0 jusqu’à 5.

Spacing

Setting Catégorie Default Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Insérer un espace entre un type de données et ses parenthèses, par exemple VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Insérer des espaces entre les paramètres d’un type de données, par exemple DECIMAL (10, 2).

Exemple de fichier de réglages

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

Définir le formateur par défaut

Pour définir l’extension MSSQL par défaut, sélectionnez Configurer le formateur par défaut...>SQL Server (mssql), ou ajouter la configuration suivante à settings.json:

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