Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d'analytique SQL dans Microsoft Fabric
Entrepôt dans Fabric de Microsoft
Base de données SQL dans Fabric de Microsoft
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. SQL Server Management Studio (SSMS) inclut un outil de mise en forme SQL intégré que vous pouvez exécuter à la demande, configurer pour une mise en forme automatique lors de l’enregistrement et personnaliser via les paramètres de SSMS ou les fichiers .editorconfig.
La fonctionnalité de mise en forme SQL dans SSMS est basée sur ScriptDOM, une bibliothèque de .NET open source qui analyse T-SQL et génère des scripts basés sur des arborescences de syntaxe abstraites.
Prerequisites
- SQL Server Management Studio 22.7 ou une version ultérieure
Format à la demande
Vous pouvez mettre en forme T-SQL dans n’importe quelle fenêtre de l’éditeur de requête à tout moment. Le formateur peut s’appliquer à l’intégralité du document ou uniquement à une section de texte sélectionnée.
Pour mettre en forme SQL à la demande, utilisez l’une des méthodes suivantes :
- Menu contextuel : cliquez avec le bouton droit dans une fenêtre d’éditeur T-SQL, puis sélectionnez Format SQL.
- Menu Édition : sélectionnez Édition>Avancé>.
- Raccourci clavier : appuyez sur Ctrl+K, Ctrl+Q.
Lorsque vous sélectionnez du texte, le formateur s’applique uniquement à la sélection. Lorsque vous ne sélectionnez pas de texte, le formateur s’applique à l’ensemble du document.
Formater à l’enregistrement
Lorsque vous activez l’option Format sur Enregistrer , le formateur applique automatiquement vos options de mise en forme configurées chaque fois que vous enregistrez un .sql fichier. Le format de l’enregistrement fonctionne avec des fenêtres de l’éditeur de requête nommées ou enregistrées et avec des fichiers dans des projets de base de données SQL. Le formatage à l’enregistrement garantit l’uniformité de vos fichiers SQL d’une pull request à l’autre et lors des revues de code.
Pour activer le format lors de l’enregistrement de tous les fichiers :
- Sélectionnez Outils>Options.
- Accédez à Formateur SQL>Formatage.
- Définissez Formatage à l’enregistrement sur True.
- Sélectionnez OK.
Vous pouvez également définir format_on_save = true dans un .editorconfig fichier pour activer le format à enregistrer pour tous les .sql fichiers de votre projet ou dossier. Pour plus d’informations, consultez le fichier .editorconfig.
Configurer les options de mise en forme
L’outil de formatage prend en charge un éventail d’options qui déterminent la mise en forme de votre SQL, telles que la casse des mots-clés, la taille du retrait, les points-virgules après les instructions et les sauts de ligne pour des clauses telles que FROM, WHERE et JOIN. Vous pouvez configurer ces options de deux manières : via les paramètres SSMS ou via un .editorconfig fichier.
Lorsqu’un paramètre SSMS et une .editorconfig valeur existent pour la même option, la .editorconfig valeur est prioritaire. Cette priorité vous permet de définir vos valeurs par défaut préférées dans SSMS et de les remplacer par projet ou par dossier par .editorconfig fichier.
Paramètres SSMS
Pour configurer les options de mise en forme dans SSMS :
- Sélectionnez Outils>Options.
- Accédez à SQL Formatter.
- Ajustez les paramètres dans les sous-catégories : Général, Alignement, Chemins, Mise en forme, Retrait, Multiligne, Nouvelle ligne et Espacement.
- Sélectionnez OK.
Fichier .editorconfig
Vous pouvez définir des options de mise en forme dans un .editorconfig fichier placé dans votre projet ou dossier. SSMS lit ces valeurs et les applique comme remplacements au-dessus des paramètres SSMS.
Toutes les clés du formateur SQL sont sous [*.sql] dans .editorconfig.
Général
| Key | Type | Values | Par défaut |
|---|---|---|---|
sql_version |
enum |
Sql80
Sql90
Sql100
Sql110
Sql120
Sql130
Sql140
Sql150
Sql160
Sql170
|
Sql170 |
sql_engine_type |
enum |
All
Standalone
SqlAzure
|
All |
Alignement
| Key | Type | Values | Par défaut | Description |
|---|---|---|---|---|
align_clause_bodies |
bool | true |
Aligner les corps de FROM, WHERE, GROUP BY et des clauses similaires. |
|
align_column_definition_fields |
bool | true |
Alignez les champs de définition de colonne, tels que le nom, le type et les contraintes. | |
align_set_clause_item |
bool | true |
Aligner les éléments de clause SET dans les instructions UPDATE. |
|
clause_body_alignment |
enum |
Aligned
Indented
|
Aligned |
Détermine si les corps de clause sont alignés avec le mot clé de clause ou placés sur la ligne suivante et mis en retrait. |
Formatting
| Key | Type | Values | Par défaut | Description |
|---|---|---|---|---|
as_keyword_on_own_line |
bool | true |
Placez AS sur une ligne distincte. |
|
built_in_function_casing |
enum |
Preserve
Uppercase
Lowercase
PascalCase
|
Preserve |
Contrôle la casse des noms de fonctions intégrées. |
column_alias_style |
enum |
AsKeyword
EqualsSign
Preserve
|
Preserve |
Affichez les alias de colonne à l’aide du AS mot clé, d’un signe égal ou conservez le style d’origine. |
comma_placement |
enum |
Trailing
Leading
|
Trailing |
Placez des virgules à la fin de la ligne (fin) ou au début de la ligne suivante (en tête) dans les listes multilignes. |
format_on_save |
bool | false |
Format automatique lors de l’enregistrement (SSMS uniquement, pas dans ScriptDOM). | |
identifier_bracketing |
enum |
Preserve
IncludeBrackets
ExcludeBrackets
|
Preserve |
Détermine si les crochets autour des identificateurs sont conservés, ajoutés ou supprimés. |
identifier_casing |
enum |
Preserve
Uppercase
Lowercase
PascalCase
|
Preserve |
Contrôle la casse appliquée aux identificateurs. |
keyword_casing |
enum |
Uppercase
Lowercase
PascalCase
|
Uppercase |
Style de casse des mots clés. |
leading_comma_space_count |
int | (0 - 1) | 1 |
Contrôle le nombre d’espaces insérés après une virgule de début. |
preserve_comments |
bool | true |
Conservez les commentaires pendant la mise en forme. | |
terminate_block_statements |
bool | false |
Contrôle si les instructions de bloc se terminent par un point-virgule. |
Mise en retrait
| Key | Type | Values | Par défaut | Description |
|---|---|---|---|---|
indent_set_clause |
bool | false |
Mettre en retrait la clause SET dans les instructions UPDATE. |
|
indent_view_body |
bool | false |
Mettre en retrait le corps VIEW. |
|
indentation_mode |
enum |
Spaces
Tabs
|
Spaces |
Effectuez le retrait à l’aide d’espaces ou de tabulations. |
indentation_size |
int | (1 - 8) | 4 |
Espaces par niveau de retrait. |
Multiline
| Key | Type | Par défaut | Description |
|---|---|---|---|
multiline_group_by_elements_list |
bool | true |
GROUP BY éléments sur des lignes distinctes. |
multiline_having_predicates_list |
bool | true |
HAVING prédicats sur des lignes séparées. |
multiline_in_values_list |
bool | true |
IN valeurs d’expression sur des lignes séparées. |
multiline_insert_sources_list |
bool | true |
Sources INSERT sur plusieurs lignes. |
multiline_insert_targets_list |
bool | true |
Colonnes INSERT sur plusieurs lignes. |
multiline_nested_function_calls |
bool | true |
Paramètres dans des appels de fonction imbriqués sur plusieurs lignes. |
multiline_order_by_elements_list |
bool | true |
ORDER BY éléments sur des lignes distinctes. |
multiline_partition_by_elements_list |
bool | true |
PARTITION BY éléments sur des lignes distinctes. |
multiline_procedure_parameters_list |
bool | true |
Paramètres de la procédure stockée sur des lignes séparées. |
multiline_select_elements_list |
bool | true |
Colonnes SELECT sur plusieurs lignes. |
multiline_set_clause_items |
bool | true |
Éléments SET sur plusieurs lignes. |
multiline_view_columns_list |
bool | true |
Colonnes VIEW sur plusieurs lignes. |
multiline_where_predicates_list |
bool | true |
Prédicats WHERE sur plusieurs lignes. |
multiline_with_options_list |
bool | true |
Options dans des balises WITH et OPTION sur des lignes distinctes. |
Nouvelle ligne
| Key | Type | Par défaut |
|---|---|---|
new_line_after_join_keyword |
bool | true |
new_line_before_close_parenthesis_in_multiline_list |
bool | true |
new_line_before_from_clause |
bool | true |
new_line_before_group_by_clause |
bool | true |
new_line_before_having_clause |
bool | true |
new_line_before_join_clause |
bool | true |
new_line_before_offset_clause |
bool | true |
new_line_before_on_clause |
bool | true |
new_line_before_open_parenthesis_in_multiline_list |
bool | false |
new_line_before_order_by_clause |
bool | true |
new_line_before_output_clause |
bool | true |
new_line_before_where_clause |
bool | true |
new_line_before_window_clause |
bool | true |
newline_formatted_check_constraint |
bool | false |
newline_formatted_index_definition |
bool | false |
num_newlines_after_batch_statement |
int (0 - 10) | 2 |
num_newlines_after_batches |
int (0 - 10) | 1 |
num_newlines_after_statement |
int (0 - 10) | 1 |
Spacing
| Key | Type | Par défaut | Description |
|---|---|---|---|
space_between_data_type_and_parameters |
bool | true |
Espace entre le type de données et les parenthèses, par exemple VARCHAR (255) |
space_between_parameters_in_data_type |
bool | true |
Espace entre les paramètres dans les types de données |
Exemple .editorconfig
L’exemple suivant montre un .editorconfig fichier qui définit quelques options couramment personnalisées. Toutes les propriétés non spécifiées dans le fichier sont renvoyées aux paramètres SSMS.
[*.sql]
keyword_casing = lowercase
include_semicolons = true
indentation_size = 2
multiline_select_elements_list = true
new_line_before_from_clause = true
Partager des commentaires
La fonctionnalité de mise en forme SQL dans SSMS est basée sur la bibliothèque de .NET open source pour l’analyse T-SQL, ScriptDOM. Utilisez le système GitHub problèmes dans le référentiel ScriptDOM pour discuter des idées et des défis. Les pull requests sont les bienvenues.
Envoyez vos commentaires sur SSMS via Aide>Envoyer des commentaires dans SSMS ou via le canal de commentaires de Developer Community.