Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
database SQL di Azure
Istanza gestita SQL di Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Database SQL in Microsoft Fabric
La formattazione coerente semplifica la lettura, la revisione e la manutenzione di Transact-SQL (T-SQL), soprattutto quando più persone contribuiscono alla stessa codebase. SQL Server Management Studio (SSMS) include un formattatore SQL predefinito (anteprima) che è possibile eseguire su richiesta, configurare per la formattazione automatica al salvataggio e personalizzare tramite impostazioni o .editorconfig file di SSMS.
La funzionalità di formattazione SQL in SSMS si basa su ScriptDOM, una libreria di .NET open source che analizza T-SQL e genera script basati su alberi della sintassi astratta.
Prerequisiti
Formattare su richiesta
È possibile formattare T-SQL in qualsiasi finestra dell'editor di query in qualsiasi momento. Il formattatore può essere applicato all'intero documento o solo a una sezione di testo selezionata.
Per formattare SQL su richiesta, usare uno dei metodi seguenti:
- Menu di scelta rapida: fare clic con il pulsante destro del mouse in una finestra dell'editor T-SQL e scegliere Formato SQL (anteprima).
- Menu Modifica: selezionare Modifica> formatoavanzato>SQL (anteprima).
- Scelta rapida da tastiera: premere CTRL+K, CTRL+Q.
Quando si seleziona il testo, il formattatore si applica solo alla selezione. Quando non si seleziona testo, il formattatore si applica all'intero documento.
Formato al salvataggio
Quando si attiva l'opzione Formato su Salva , il formattatore applica automaticamente le opzioni di formattazione configurate ogni volta che si salva un .sql file. La formattazione al salvataggio funziona per le finestre dell'editor di query denominate o salvate e per i file nei progetti di database SQL. Il formato al salvataggio mantiene coerenti i file SQL tra richieste pull e revisioni del codice.
Per abilitare il formato al salvataggio per tutti i file:
- Selezionare Strumenti>Opzioni.
- Vai a Formattatore SQL (Anteprima)>Formattazione.
- Imposta Formattazione al salvataggio su True.
- Seleziona OK.
Puoi anche impostare format_on_save = true in un file .editorconfig per abilitare la formattazione al salvataggio per tutti i file .sql nel tuo progetto o nella tua cartella. Per altre informazioni, vedere il file .editorconfig.
Configurare le opzioni di formattazione
Il formattatore supporta un intervallo di opzioni che controllano la modalità di stile di SQL, ad esempio maiuscole e minuscole delle parole chiave, dimensioni del rientro, punti e virgola dopo le istruzioni e interruzioni di riga per clausole come FROM, WHEREe JOIN. È possibile configurare queste opzioni in due modi: tramite le impostazioni di SSMS o tramite un .editorconfig file.
Quando esistono sia un'impostazione di SSMS che un .editorconfig valore per la stessa opzione, il .editorconfig valore ha la precedenza. Questa precedenza consente di impostare le impostazioni predefinite preferite in SSMS ed eseguirne l'override per progetto o per cartella con un .editorconfig file.
Impostazioni di SSMS
Per configurare le opzioni di formattazione in SSMS:
- Selezionare Strumenti>Opzioni.
- Vai a Formattatore SQL (Anteprima).
- Modifica le impostazioni nelle sottocategorie: Generale, Allineamento, Percorsi, Formattazione, Rientro, Multilinea, Nuova riga e Spaziatura.
- Seleziona OK.
file .editorconfig
È possibile definire le opzioni di formattazione in un .editorconfig file inserito nel progetto o nella cartella. SSMS legge questi valori e li applica come sovrascritture in sovrapposizione alle impostazioni di SSMS.
Tutte le chiavi del formattatore SQL rientrano sotto [*.sql] in .editorconfig.
Generale
| Key | Tipo | Values | Predefinito |
|---|---|---|---|
sql_version |
enum |
Sql80
Sql90
Sql100
Sql110
Sql120
Sql130
Sql140
Sql150
Sql160
Sql170
|
Sql170 |
sql_engine_type |
enum |
All
Standalone
SqlAzure
|
All |
Allineamento
| Key | Tipo | Predefinito | Description |
|---|---|---|---|
align_clause_bodies |
bool | true |
Allineare i corpi di FROM, WHERE, GROUP BY e clausole simili. |
align_column_definition_fields |
bool | true |
Allineare i campi di definizione della colonna, ad esempio nome, tipo e vincoli. |
align_set_clause_item |
bool | true |
Allineare gli elementi di clausola SET nelle istruzioni UPDATE |
Paths
| Key | Tipo | Predefinito |
|---|---|---|
allow_external_language_paths |
bool | true |
allow_external_library_paths |
bool | true |
Formattazione
| Key | Tipo | Values | Predefinito | Description |
|---|---|---|---|---|
format_on_save |
bool | false |
Formattazione automatica al salvataggio (solo SSMS, non in ScriptDOM). | |
as_keyword_on_own_line |
bool | true |
Posiziona AS su una riga separata. |
|
include_semicolons |
bool | false |
Accodare punti e virgola alle istruzioni. | |
keyword_casing |
enum |
Uppercase
Lowercase
PascalCase
|
Uppercase |
Stile di scrittura delle parole chiave in maiuscolo/minuscolo. |
preserve_comments |
bool | true |
Mantenere i commenti durante la formattazione. |
Indentazione
| Key | Tipo | Predefinito | Description |
|---|---|---|---|
indent_set_clause |
bool | false |
Applica un rientro alla clausola SET nelle istruzioni UPDATE. |
indentation_size |
int (1-8) | 4 |
Spazi per livello di rientro. |
indent_view_body |
bool | false |
Rientra VIEW il corpo. |
Multilinea
| Key | Tipo | Predefinito | Description |
|---|---|---|---|
multiline_insert_sources_list |
bool | true |
INSERT sorgenti come multilinee. |
multiline_insert_targets_list |
bool | true |
INSERT colonne su più righe. |
multiline_select_elements_list |
bool | true |
SELECT colonne su più righe. |
multiline_set_clause_items |
bool | true |
SET elementi come testo su più righe. |
multiline_view_columns_list |
bool | true |
VIEW colonne come multilinea. |
multiline_where_predicates_list |
bool | true |
WHERE predicati come multilinea. |
Nuova riga
| Key | Tipo | Predefinito |
|---|---|---|
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_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_statement |
int (0-5) | 1 |
Spacing
| Key | Tipo | Predefinito | Description |
|---|---|---|---|
space_between_data_type_and_parameters |
bool | true |
Spazio tra il tipo di dati e i parens, ad esempio VARCHAR (255) |
space_between_parameters_in_data_type |
bool | true |
Spazio tra parametri nei tipi di dati |
Esempio di file con estensione editorconfig
L'esempio seguente mostra un .editorconfig file che imposta alcune opzioni comunemente personalizzate. Qualsiasi proprietà non specificata nel file esegue il fallback alle impostazioni di SSMS.
[*.sql]
keyword_casing = lowercase
include_semicolons = true
indentation_size = 2
multiline_select_elements_list = true
new_line_before_from_clause = true
Condividi commenti
La funzionalità di formattazione SQL in SSMS si basa sulla libreria di .NET open source per l'analisi T-SQL, ScriptDOM. Usare il sistema di problemi di GitHub nel repository ScriptDOM per discutere idee e sfide. Le pull request sono ben accette.
Invia commenti su SSMS tramite Guida>Invia commenti e suggerimenti in SSMS o tramite il canale di feedback di Developer Community.