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 (Preview), który możesz uruchomić na żądanie, skonfigurować automatyczne formatowanie 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.*.

  • Formater podglądu jest domyślnie włączony. Jego opcje używają przestrzeni nazw mssql.format.options.*.

  • Pięć istniejących ustawień formatera pozostaje dostępnych po włączeniu podglądowego formatera. Formatter podglądu dodaje ustawienia mssql.format.options.*.

Zrzut ekranu ustawień formatera SQL w edytorze ustawień Visual Studio Code.

Obsługiwane ustawienia

Tabele wymieniają istniejące ustawienia formatera, a następnie podglądowe ustawienia formatera.

Istniejące ustawienia formatera

Setting Typ Domyślny Description
mssql.format.alignColumnDefinitionsInColumns bool false Wyrównuj definicje kolumn w kolumnach.
mssql.format.datatypeCasing wyliczenie none Formatuj typy danych jako uppercase, lowercase, lub none (bez formatu).
mssql.format.keywordCasing wyliczenie none Formatuj słowa kluczowe jako uppercase, lowercase, lub none (bez formatowania).
mssql.format.placeCommasBeforeNextStatement bool false Umieść przecinki na początku każdego elementu w liście, na przykład , mycolumn2, zamiast na końcu, na przykład mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Umieść odwołania w instrukcji SELECT w osobnych wierszach. Dla SELECT C1, C2 FROM T1, zarówno C1, jak i C2 znajdują się na osobnych prostych.

Ustawienia formatera podglądowego

Te mssql.format.options.* ustawienia nakładają się na istniejące ustawienia formatera, gdy włączasz podglądowy formater.

Ogólne

Setting Typ Domyślny Description
mssql.format.enablePreviewFormatter bool true Użyj formatera SQL (Podgląd).
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 nazwa, typ i ograniczenia.
mssql.format.options.alignSetClauseItem bool true Wyrównaj SET elementy klauzul w instrukcjach UPDATE.

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.keywordCasing wyliczenie uppercase Styl wielkości liter słowa kluczowego. Prawidłowe wartości to uppercase, lowercase i pascalCase.
mssql.format.options.preserveComments bool true Zachowaj komentarze podczas formatowania.
mssql.format.options.numNewlinesAfterStatement int 1 Liczba połamań liniowych po każdym zdaniu, od 0 do 5.

Wcięcie

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

Wieloliniowy

Setting Typ Domyślny Description
mssql.format.options.multilineInsertSourcesList bool true INSERT źródła jako wielowierszowe.
mssql.format.options.multilineInsertTargetsList bool true INSERT kolumny wielowierszowe.
mssql.format.options.multilineSelectElementsList bool true SELECT kolumny wielowierszowe.
mssql.format.options.multilineSetClauseItems bool true SET elementy w wielu wierszach.
mssql.format.options.multilineViewColumnsList bool true VIEW kolumny wielowierszowe.
mssql.format.options.multilineWherePredicatesList bool true WHERE predykaty są wielowierszowe.

Nowy wiersz

Setting Typ Domyślny Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Nowa linia przed zamkniętym nawiasem w liście wielolinijowej.
mssql.format.options.newLineBeforeFromClause bool true Nowa linijka przed FROM klauzulą.
mssql.format.options.newLineBeforeGroupByClause bool true Nowa linijka przed GROUP BY klauzulą.
mssql.format.options.newLineBeforeHavingClause bool true Nowa linijka przed HAVING klauzulą.
mssql.format.options.newLineBeforeJoinClause bool true Nowa linijka przed JOIN klauzulą.
mssql.format.options.newLineBeforeOffsetClause bool true Nowa linijka przed OFFSET klauzulą.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Nowa linia przed otwartym nawiasem w liście wielolinijowej.
mssql.format.options.newLineBeforeOrderByClause bool true Nowa linijka przed ORDER BY klauzulą.
mssql.format.options.newLineBeforeOutputClause bool true Nowa linijka przed OUTPUT klauzulą.
mssql.format.options.newLineBeforeWhereClause bool true Nowa linijka przed WHERE klauzulą.
mssql.format.options.newLineBeforeWindowClause bool true Nowa linijka przed WINDOW klauzulą.
mssql.format.options.newlineFormattedCheckConstraint bool false Ograniczenie formatowane CHECK w nowej linii.
mssql.format.options.newLineFormattedIndexDefinition bool false Definicja indeksu w formacie nowej linii.

Spacing

Setting Typ Domyślny Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Odstęp między typem danych a nawiasami, na przykład VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Przestrzeń między parametrami w typach danych.

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