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é (Preview) que vous pouvez lancer à 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.*.

  • Le formateur d’aperçu est activé par défaut. Ses options utilisent l’espace de noms mssql.format.options.*.

  • Les cinq paramètres existants du formateur restent disponibles lorsque le formateur d’aperçu est activé. Le formateur d’aperçu ajoute les mssql.format.options.* paramètres.

Capture d’écran des paramètres du formateur SQL dans l’éditeur de paramètres de Visual Studio Code.

Paramètres pris en charge

Les tableaux présentent les paramètres de formatage existants, suivis des paramètres de prévisualisation.

Paramètres existants du formateur

Setting Catégorie Default Description
mssql.format.alignColumnDefinitionsInColumns bool false Alignez les définitions de colonnes dans les colonnes.
mssql.format.datatypeCasing enum none Formatez les types de données en uppercase, lowercase, ou none (non formatés).
mssql.format.keywordCasing enum none Formatez les mots-clés , uppercaselowercase, ou none (non formatés).
mssql.format.placeCommasBeforeNextStatement bool false Placez des virgules au début de chaque élément dans une liste, par , mycolumn2exemple , au lieu de la fin, par mycolumn1,exemple .
mssql.format.placeSelectStatementReferencesOnNewLine bool false Placez des références dans une SELECT déclaration sur des lignes séparées. Pour SELECT C1, C2 FROM T1, C1 et C2 sont tous deux sur des lignes séparées.

Paramètres de formateur d’aperçu

Ces mssql.format.options.* réglages s’ajoutent aux paramètres de formateur existants lorsque vous activez le formateur d’aperçu.

General

Setting Catégorie Default Description
mssql.format.enablePreviewFormatter bool true Utilisez le formateur SQL (Aperçu).
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 des FROMclauses , WHERE, GROUP BYet similaires.
mssql.format.options.alignColumnDefinitionFields bool true Alignez les champs de définition de colonne, tels que le nom, le type et les contraintes.
mssql.format.options.alignSetClauseItem bool true Aligner les éléments de clause SET dans les instructions UPDATE.

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.keywordCasing enum uppercase Style de casse des mots-clés. Les valeurs valides sont uppercase, lowercaseet pascalCase.
mssql.format.options.preserveComments bool true Conservez les commentaires pendant la mise en forme.
mssql.format.options.numNewlinesAfterStatement int 1 Nombre de sauts de ligne après chaque énoncé, de 0 jusqu’à 5.

Mise en retrait

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

Multiligne

Setting Catégorie Default Description
mssql.format.options.multilineInsertSourcesList bool true INSERT sources sur plusieurs lignes.
mssql.format.options.multilineInsertTargetsList bool true INSERT colonnes sur plusieurs lignes.
mssql.format.options.multilineSelectElementsList bool true SELECT colonnes sur plusieurs lignes.
mssql.format.options.multilineSetClauseItems bool true SET éléments sur plusieurs lignes.
mssql.format.options.multilineViewColumnsList bool true VIEW colonnes sur plusieurs lignes.
mssql.format.options.multilineWherePredicatesList bool true WHERE prédicats sur plusieurs lignes.

Nouvelle ligne

Setting Catégorie Default Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Nouvelle ligne avant la fermeture des parenthèses dans la liste multiligne.
mssql.format.options.newLineBeforeFromClause bool true Nouvelle ligne avant la clause FROM.
mssql.format.options.newLineBeforeGroupByClause bool true Nouvelle ligne avant la clause GROUP BY.
mssql.format.options.newLineBeforeHavingClause bool true Nouvelle ligne avant la clause HAVING.
mssql.format.options.newLineBeforeJoinClause bool true Saut de ligne avant l’alinéa JOIN.
mssql.format.options.newLineBeforeOffsetClause bool true Nouvelle ligne avant la clause OFFSET.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Nouvelle ligne avant la parenthèse ouverte dans la liste multiligne.
mssql.format.options.newLineBeforeOrderByClause bool true Saut de ligne avant la clause ORDER BY.
mssql.format.options.newLineBeforeOutputClause bool true Nouvelle ligne avant la clause OUTPUT.
mssql.format.options.newLineBeforeWhereClause bool true Saut de ligne avant la clause WHERE.
mssql.format.options.newLineBeforeWindowClause bool true Saut de ligne avant la clause WINDOW.
mssql.format.options.newlineFormattedCheckConstraint bool false Contrainte formatée CHECK par la nouvelle ligne.
mssql.format.options.newLineFormattedIndexDefinition bool false Définition de l’index formaté par nouvelle ligne.

Spacing

Setting Catégorie Default Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Espace entre le type de données et les parenthèses, par exemple VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Espace entre les paramètres dans les types de données.

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