Format Transact-SQL w rozszerzeniu MSSQL dla Visual Studio Code

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. Rozszerzenie MSSQL dla Visual Studio Code zawiera wbudowany formater SQL, który możesz uruchomić na żądanie, skonfigurować do automatycznego formatowania podczas zapisu i dostosować za pomocą ustawień Visual Studio Code.

Funkcjonalność formatowania T-SQL w rozszerzeniu MSSQL opiera się na ScriptDOM, otwartoźródłowej bibliotece .NET, która analizuje T-SQL i generuje skrypty na podstawie abstrakcyjnych drzew składniowych.

Formatowanie na żądanie

Możesz sformatować T-SQL w dowolnym oknie edytora. Formatter działa na całym dokumencie lub tylko na wybranym przez Ciebie tekście.

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

  • Menu kontekstowe: Kliknij prawym przyciskiem myszy w oknie edytora T-SQL i wybierz Format Document lub Format Selection.

  • Paleta poleceń: Uruchom format dokumentu lub wybór formatu.

  • Skrót klawiaturowy: Aby sformatować dokument, naciśnij Shift+Alt+F na Windows i Linux lub Shift+Option+F na macOS. Aby wybrać format, naciśnij Ctrl+K, Ctrl+F na Windows i Linux, lub cmd+k, cmd+f na macOS.

Formatuj przy zapisie

W Visual Studio Code standardowe ustawienie edytora kontroluje format podczas zapisu, zamiast dedykowanego ustawienia formatera MSSQL.

Użyj następujących ustawień w pliku Visual Studio Codesettings.json, aby automatycznie formatować T-SQL za każdym razem, gdy zapisujesz plik:

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

Konfigurowanie opcji formatowania

Skonfiguruj formatowanie w interfejsie ustawień programu Visual Studio Code albo w ustawieniach użytkownika lub obszaru roboczego settings.json.

W edytorze Ustawień wyszukaj Mssql>Format , aby zobaczyć dostępne opcje. W settings.json użyj odpowiednich ustawień mssql.format.*.

Obsługiwane ustawienia

Poniższe ustawienia konfigurują formater SQL.

Ogólne

Setting Typ Domyślny Description
mssql.format.showParseErrorNotification bool true Pokaż powiadomienie, gdy formater nie będzie w stanie w pełni przeparsować T-SQL.
mssql.format.options.sqlVersion wyliczenie sql170 Wersja T-SQL używana do parsowania i generowania sformatowanych skryptów.
mssql.format.options.sqlEngineType wyliczenie all Typ aparatu bazy danych używany do analizowania i generowania sformatowanych skryptów. Prawidłowe wartości to all, standalone i sqlAzure.

Wyrównanie

Setting Typ Domyślny Description
mssql.format.options.alignClauseBodies bool true Wyrównaj treść klauzul FROM, WHERE, GROUP BY i podobnych.
mssql.format.options.alignColumnDefinitionFields bool true Wyrównuj pola definicji kolumn, takie jak nazwy, typy danych i ograniczenia.
mssql.format.options.alignSetClauseItem bool true Wyrównaj SET elementy klauzul w instrukcjach UPDATE.
mssql.format.options.clauseBodyAlignment wyliczenie aligned Zachowaj treść klauzul aligned razem ze słowami kluczowymi lub umieść ją w kolejnym wierszu jako indented.

Obudowa i identyfikatory

Setting Typ Domyślny Description
mssql.format.options.builtInFunctionCasing wyliczenie preserve Styl obudowy dla obsługiwanych wbudowanych nazw funkcji, takich jak GETDATE i COALESCE. Prawidłowe wartości topreserve, uppercase, lowercase i pascalCase.
mssql.format.options.identifierBracketing wyliczenie preserve Zachowuj, dodaj lub usuń opcjonalne nawiasy kwadratowe wokół identyfikatorów. Prawidłowe wartości to preserve, includeBrackets i excludeBrackets. Wymagane nawiasy są zachowane.
mssql.format.options.identifierCasing wyliczenie preserve Styl określeń dla identyfikatorów obiektów. Prawidłowe wartości topreserve, uppercase, lowercase i pascalCase.
mssql.format.options.keywordCasing wyliczenie uppercase Styl wielkości liter słowa kluczowego. Prawidłowe wartości to uppercase, lowercase i pascalCase.

Paths

Setting Typ Domyślny Description
mssql.format.options.allowExternalLanguagePaths bool true Zezwalaj zewnętrznym treściom językowym na używanie ścieżek plików.
mssql.format.options.allowExternalLibraryPaths bool true Pozwól zewnętrznym treściom bibliotek korzystać ze ścieżek do plików.

Formatowanie

Setting Typ Domyślny Description
mssql.format.options.asKeywordOnOwnLine bool true Umieść AS w osobnym wierszu.
mssql.format.options.columnAliasStyle wyliczenie asKeyword Formatuj aliasy kolumn za pomocą AS, znaku równości lub ich oryginalnej składni. Prawidłowe wartości to asKeyword, equalsSign i preserve.
mssql.format.options.commaPlacement wyliczenie trailing Umieść przecinki na końcu pozycji listy (trailing) lub na początku kolejnego elementu (leading).
mssql.format.options.leadingCommaSpaceCount liczba całkowita 1 Liczba spacji po przecinku wiodącym. Prawidłowe wartości to 0 i 1.
mssql.format.options.persistTrailingGo bool false Zachowaj separatory partii z GO oryginalnego skryptu.
mssql.format.options.preserveComments bool true Zachowaj komentarze podczas formatowania.
mssql.format.options.terminateBlockStatements bool false Dodaj średniki kończące po blokach BEGIN...END i TRY...CATCH.

Wcięcie

Setting Typ Domyślny Description
mssql.format.options.indentSetClause bool false Wcinaj klauzule SET w instrukcjach UPDATE.
mssql.format.options.indentViewBody bool false Zastosuj wcięcie do treści VIEW.

Wieloliniowy

Setting Typ Domyślny Description
mssql.format.options.multilineGroupByElementsList bool false Formatuj GROUP BY elementy jako listę wieloliniową.
mssql.format.options.multilineHavingPredicatesList bool true Formatuj predykaty HAVING, rozdzielone przez AND lub OR, w wielu wierszach.
mssql.format.options.multilineInsertSourcesList bool true Formatuj INSERT źródła jako listy wieloliniowe.
mssql.format.options.multilineInsertTargetsList bool true Formatuj INSERT kolumny jako listy wieloliniowe.
mssql.format.options.multilineInValuesList bool false Formatuj wartości w IN predykacie jako listę wieloliniową.
mssql.format.options.multilineNestedFunctionCalls bool false Formatuj zagnieżdżone wywołania funkcji na oddzielnych wciętych liniach, zachowując izolowane wywołania funkcji na jednej linii.
mssql.format.options.multilineOrderByElementsList bool false Formatuj ORDER BY elementy jako listę wieloliniową.
mssql.format.options.multilinePartitionByElementsList bool false Formatuj PARTITION BY elementy w specyfikacjach okien jako listę wieloliniową.
mssql.format.options.multilineProcedureParametersList bool false Formatuj parametry procedur i funkcji na osobnych liniach.
mssql.format.options.multilineSelectElementsList bool true Formatuj SELECT kolumny jako listy wieloliniowe.
mssql.format.options.multilineSetClauseItems bool true Sformatuj SET elementy klauzul jako listy wieloliniowe.
mssql.format.options.multilineViewColumnsList bool true Formatuj VIEW kolumny jako listy wieloliniowe.
mssql.format.options.multilineWherePredicatesList bool true Formatuj WHERE predykaty jako listy wieloliniowe.
mssql.format.options.multilineWithOptionsList bool false Formatuj obsługiwane wartości klauzuli WITH i OPTION w osobnych wierszach.

Nowy wiersz

Setting Typ Domyślny Description
mssql.format.options.newLineAfterJoinKeyword bool true Umieść źródło połączonej tabeli na nowej linii po słowie JOIN kluczowym.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Umieść nową linię przed zamknięciem nawiasu listy wielolinijkowej.
mssql.format.options.newLineBeforeFromClause bool true Umieść nową linię przed klauzulą FROM .
mssql.format.options.newLineBeforeGroupByClause bool true Umieść nową linię przed klauzulą GROUP BY .
mssql.format.options.newLineBeforeHavingClause bool true Umieść nową linię przed klauzulą HAVING .
mssql.format.options.newLineBeforeJoinClause bool true Umieść nowy wiersz przed JOIN klauzulami.
mssql.format.options.newLineBeforeOffsetClause bool true Umieść nową linię przed klauzulą OFFSET .
mssql.format.options.newLineBeforeOnClause bool true Umieść klauzulę ON łączenia na nowej linii.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Umieść nową linię przed nawiasem otwierającym listę wielolinijkową.
mssql.format.options.newLineBeforeOrderByClause bool true Umieść nową linię przed klauzulą ORDER BY .
mssql.format.options.newLineBeforeOutputClause bool true Umieść nową linię przed klauzulą OUTPUT .
mssql.format.options.newLineBeforeWhereClause bool true Umieść nową linię przed klauzulą WHERE .
mssql.format.options.newLineBeforeWindowClause bool true Umieść nową linię przed klauzulą WINDOW .
mssql.format.options.newlineFormattedCheckConstraint bool false Umieść klauzulę ograniczenia CHECK w osobnym wierszu.
mssql.format.options.newLineFormattedIndexDefinition bool false Umieść fragmenty definicji indeksów śródliniowych UNIQUE, INCLUDE i WHERE w osobnych wierszach.

Odstępy między instrukcjami i partiami

Setting Typ Domyślny Description
mssql.format.options.numNewlinesAfterBatches liczba całkowita 1 Liczba podziałów wiersza po każdym separatorze partii GO, od 0 do 5.
mssql.format.options.numNewlinesAfterBatchStatement liczba całkowita 2 Liczba podziałów wiersza po każdej instrukcji najwyższego poziomu w partii przetwarzania, od 0 do 5.
mssql.format.options.numNewlinesAfterStatement liczba całkowita 1 Liczba połamań liniowych po każdym zdaniu, od 0 do 5.

Spacing

Setting Typ Domyślny Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Wstaw spację między typem danych a jego nawiasami, na przykład VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Wstaw odstępy między parametrami w typie danych, na przykład DECIMAL (10, 2).

Przykładowy plik ustawień

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

Ustaw domyślny formater

Aby ustawić rozszerzenie MSSQL jako domyślne, wybierz Configure Default Formatter...>SQL Server (mssql) lub dodaj następującą konfigurację dosettings.json:

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