Formatowanie Transact-SQL w programie SSMS

Dotyczy: SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w Microsoft FabricMagazyn w Microsoft FabricBaza danych SQL w Microsoft Fabric

Spójne formatowanie ułatwia odczytywanie, przeglądanie i konserwowanie Transact-SQL (T-SQL), zwłaszcza gdy wiele osób współtworzy tę samą bazę kodu. program SQL Server Management Studio (SSMS) zawiera wbudowany program formatujący SQL (wersja zapoznawcza), który można uruchamiać na żądanie, konfigurować pod kątem automatycznego formatowania podczas zapisywania i dostosowywać za pomocą ustawień lub .editorconfig plików programu SSMS.

Funkcja formatowania SQL w programie SSMS jest oparta na elemencie ScriptDOM, bibliotece .NET typu open source, która analizuje język T-SQL i generuje skrypty oparte na abstrakcyjnych drzewach składni.

Wymagania wstępne

Formatowanie na żądanie

Język T-SQL można sformatować w dowolnym oknie edytora zapytań w dowolnym momencie. Formater może dotyczyć całego dokumentu lub tylko wybranej sekcji tekstu.

Aby sformatować język SQL na żądanie, użyj jednej z następujących metod:

  • Menu kontekstowe: kliknij prawym przyciskiem myszy okno edytora języka T-SQL i wybierz polecenie Formatuj sql (wersja zapoznawcza).
  • Menu Edycji: wybierz pozycję Edytuj>format zaawansowany>SQL (wersja zapoznawcza).
  • Skrót klawiaturowy: naciśnij klawisze Ctrl+K, Ctrl+Q.

Po zaznaczeniu tekstu formatowanie jest stosowane tylko do zaznaczonego tekstu. Jeśli nie zaznaczysz tekstu, formater ma zastosowanie do całego dokumentu.

Formatuj przy zapisie

Po włączeniu opcji Format w pozycji Zapisz formater automatycznie stosuje skonfigurowane opcje formatowania za każdym razem, gdy zapiszesz .sql plik. Formatowanie przy zapisie działa dla nazwanych lub zapisanych okien edytora zapytań oraz plików w projektach baz danych SQL. Formatowanie przy zapisie zapewnia spójny format plików SQL w pull requestach i podczas przeglądów kodu.

Aby włączyć format zapisu dla wszystkich plików:

  1. Wybierz Narzędzia>Opcje.
  2. Przejdź do pozycji Formater SQL (wersja zapoznawcza)>Formatowanie.
  3. Ustaw Format on Save na True.
  4. Kliknij przycisk OK.

Możesz również ustawić format_on_save = true w .editorconfig pliku, aby włączyć format zapisu dla wszystkich .sql plików w projekcie lub folderze. Aby uzyskać więcej informacji, zobacz plik editorconfig.

Konfigurowanie opcji formatowania

Formater obsługuje szereg opcji, które kontrolują sposób stylizowania języka SQL, takie jak wielkość liter słów kluczowych, rozmiar wcięcia, średniki po instrukcjach i podziały wierszy dla klauzul, takich jak FROM, WHEREi JOIN. Te opcje można skonfigurować na dwa sposoby: za pomocą ustawień programu SSMS lub .editorconfig pliku.

Jeśli zarówno ustawienie programu SSMS, jak i .editorconfig wartość istnieją dla tej samej opcji, .editorconfig wartość ma pierwszeństwo. Ten priorytet umożliwia ustawienie preferowanych ustawień domyślnych w programie SSMS i zastąpienie ich dla projektu lub dla folderu za pomocą .editorconfig pliku.

Ustawienia programu SSMS

Aby skonfigurować opcje formatowania w programie SSMS:

  1. Wybierz Narzędzia>Opcje.
  2. Przejdź do SQL Formatter (wersja zapoznawcza).
  3. Dostosuj ustawienia w podkategoriach: Ogólne, Wyrównanie, Ścieżki, Formatowanie, Wcięcia, Wiele wierszy, Nowy wiersz i Odstępy.
  4. Kliknij przycisk OK.

Plik .editorconfig

Opcje formatowania można zdefiniować w pliku umieszczonym .editorconfig w projekcie lub folderze. Program SSMS odczytuje te wartości i stosuje je jako przesłonięcia w ustawieniach programu SSMS.

Wszystkie klucze formatera SQL znajdują się w [*.sql] w .editorconfig.

Ogólne

Key Typ Values Default
sql_version wyliczenie Sql80 Sql90 Sql100 Sql110 Sql120 Sql130 Sql140 Sql150 Sql160 Sql170 Sql170
sql_engine_type wyliczenie All Standalone SqlAzure All

Wyrównanie

Key Typ Default Description
align_clause_bodies bool true Wyrównaj treść klauzul FROM, WHERE, GROUP BY i podobnych.
align_column_definition_fields bool true Wyrównuj pola definicji kolumn, takie jak nazwa, typ i ograniczenia.
align_set_clause_item bool true Wyrównaj SET elementy klauzul w instrukcjach UPDATE.

Paths

Key Typ Default
allow_external_language_paths bool true
allow_external_library_paths bool true

Formatowanie

Key Typ Values Default Description
format_on_save bool false Automatyczne formatowanie przy zapisie (tylko w SSMS, nie w ScriptDOM).
as_keyword_on_own_line bool true Umieść AS w osobnym wierszu.
include_semicolons bool false Dołącz średniki do instrukcji.
keyword_casing wyliczenie Uppercase Lowercase PascalCase Uppercase Styl wielkości liter słowa kluczowego.
preserve_comments bool true Zachowaj komentarze podczas formatowania.

Wcięcie

Key Typ Default Description
indent_set_clause bool false Wcinaj klauzulę SET w instrukcjach UPDATE.
indentation_size int (1–8) 4 Liczba spacji na poziom wcięcia.
indent_view_body bool false Zastosuj wcięcie do VIEW treści.

Wieloliniowy

Key Typ Default Description
multiline_insert_sources_list bool true INSERT źródła jako wielowierszowe.
multiline_insert_targets_list bool true INSERT kolumny wielowierszowe.
multiline_select_elements_list bool true SELECT kolumny jako wielowierszowe.
multiline_set_clause_items bool true SET elementy w wielu wierszach.
multiline_view_columns_list bool true VIEW kolumny jako wielowierszowe.
multiline_where_predicates_list bool true WHERE predykaty są wielowierszowe.

Nowy wiersz

Key Typ Default
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 Typ Default Description
space_between_data_type_and_parameters bool true Odstęp między typem danych a parensami, na przykład VARCHAR (255)
space_between_parameters_in_data_type bool true Odstęp między parametrami w typach danych

Przykład pliku .editorconfig

Poniższy przykład przedstawia plik .editorconfig, który ustawia kilka często dostosowywanych opcji. Wszystkie właściwości, które nie zostały określone w pliku, zostaną przywrócone do ustawień programu SSMS.

[*.sql]
keyword_casing                                      = lowercase
include_semicolons                                  = true
indentation_size                                    = 2
multiline_select_elements_list                      = true
new_line_before_from_clause                         = true

Podziel się opinią

Funkcja formatowania SQL w programie SSMS jest oparta na bibliotece open source .NET na potrzeby analizowania języka T-SQL, ScriptDOM. Korzystaj z sekcji Issues w repozytorium ScriptDOM, aby dyskutować o pomysłach i problemach. Pull requesty są mile widziane.

Prześlij opinię programu SSMS za pomocą pomocy>wyślij opinię w programie SSMS lub za pośrednictwem kanału opinii Developer Community.