Format Transact-SQL di ekstensi MSSQL untuk Visual Studio Code

Pemformatan yang konsisten membuat Transact-SQL (T-SQL) lebih mudah dibaca, ditinjau, dan dikelola, terutama ketika beberapa orang berkontribusi pada basis kode yang sama. Ekstensi MSSQL untuk Visual Studio Code mencakup SQL formatter bawaan (Pratinjau) yang dapat Anda jalankan sesuai permintaan, konfigurasikan untuk format otomatis saat menyimpan, dan menyesuaikan melalui pengaturan Visual Studio Code.

Fungsi pemformatan T-SQL dalam ekstensi MSSQL dibangun di atas ScriptDOM, sebuah pustaka .NET open-source yang mengurai T-SQL dan menghasilkan skrip berdasarkan pohon sintaks abstrak.

Format sesuai permintaan

Anda dapat memformat T-SQL di jendela editor mana pun. Formatter bekerja pada seluruh dokumen atau hanya pada teks yang Anda pilih.

Untuk memformat T-SQL sesuai permintaan, gunakan salah satu metode berikut:

  • Menu konteks: Klik kanan di jendela editor T-SQL dan pilih Format Dokumen atau Format Pilihan.

  • Palet Perintah: Jalankan Format Dokumen atau Format Pilihan.

  • Pintasan keyboard: Untuk Format Dokumen, tekan Shift+Alt+F di Windows dan Linux, atau Shift+Option+F di macOS. Untuk Pemilihan Format, tekan Ctrl+K, Ctrl+F di Windows dan Linux, atau Cmd+K, Cmd+F di macOS.

Format saat menyimpan

Di Visual Studio Code, pengaturan editor standar mengontrol format saat menyimpan, bukan pengaturan MSSQL formatter khusus.

Gunakan pengaturan berikut di file Visual Studio Code settings.json Anda untuk memformat T-SQL secara otomatis setiap kali Anda menyimpan file:

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

Mengonfigurasi opsi pemformatan

Konfigurasikan pemformatan di UI Pengaturan Visual Studio Code atau di pengaturan pengguna atau ruang kerja settings.json.

Di editor Pengaturan, cariFormatMssql> untuk melihat opsi yang tersedia. Di settings.json, gunakan pengaturan mssql.format.* yang sesuai.

  • Pemformat pratinjau diaktifkan secara bawaan. Opsi-opsinya menggunakan mssql.format.options.* namespace.

  • Lima pengaturan formatter yang ada tetap tersedia saat formatter pratinjau diaktifkan. Formatter pratinjau menambahkan pengaturan mssql.format.options.*.

Tangkapan layar pengaturan SQL formatter di editor Pengaturan Visual Studio Code.

Pengaturan yang didukung

Tabel tersebut mencantumkan pengaturan pemformat yang sudah ada, diikuti oleh pengaturan pemformat pratinjau.

Pengaturan pemformat yang ada

Setting Tipe Default Deskripsi
mssql.format.alignColumnDefinitionsInColumns bool false Menyelaraskan definisi kolom dalam kolom.
mssql.format.datatypeCasing enum none Format tipe data sebagai uppercase, lowercase, atau none (tidak diformat).
mssql.format.keywordCasing enum none Format kata kunci sebagai uppercase, lowercase, atau none (tidak diformat).
mssql.format.placeCommasBeforeNextStatement bool false Tempatkan koma di awal setiap item dalam daftar, misalnya , mycolumn2, bukan di akhir, misalnya mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Tempatkan referensi dalam pernyataan SELECT pada baris terpisah. Untuk SELECT C1, C2 FROM T1, baik C1 maupun C2 berada di jalur yang terpisah.

Pratinjau pengaturan formatter

Pengaturan ini mssql.format.options.* ditambahkan di atas pengaturan format yang sudah ada saat Anda mengaktifkan pemformat pratinjau.

Umum

Setting Tipe Default Deskripsi
mssql.format.enablePreviewFormatter bool true Gunakan formatter SQL (Pratinjau).
mssql.format.showParseErrorNotification bool true Tampilkan notifikasi ketika formatter tidak dapat sepenuhnya mengurai T-SQL.
mssql.format.options.sqlVersion enum sql170 Versi T-SQL digunakan untuk memparse dan menghasilkan skrip yang diformat.
mssql.format.options.sqlEngineType enum all Tipe Database Engine yang digunakan untuk mengurai dan menghasilkan skrip yang diformat. Nilai yang valid adalah all, standalone, dan sqlAzure.

Penyelarasan

Setting Tipe Default Deskripsi
mssql.format.options.alignClauseBodies bool true Sejajarkan isi FROM, WHERE, GROUP BY, dan klausa serupa.
mssql.format.options.alignColumnDefinitionFields bool true Ratakan bidang definisi kolom, seperti nama, jenis, dan batasan.
mssql.format.options.alignSetClauseItem bool true Sejajarkan item klausul SET pada pernyataan UPDATE.

Paths

Setting Tipe Default Deskripsi
mssql.format.options.allowExternalLanguagePaths bool true Izinkan konten bahasa eksternal menggunakan jalur file.
mssql.format.options.allowExternalLibraryPaths bool true Izinkan konten perpustakaan eksternal menggunakan jalur file.

Formatting

Setting Tipe Default Deskripsi
mssql.format.options.asKeywordOnOwnLine bool true Tempatkan AS pada baris tersendiri.
mssql.format.options.keywordCasing enum uppercase Gaya kapitalisasi kata kunci. Nilai yang valid adalah uppercase, lowercase, dan pascalCase.
mssql.format.options.preserveComments bool true Pertahankan komentar selama pemformatan.
mssql.format.options.numNewlinesAfterStatement int 1 Jumlah jeda baris setelah setiap pernyataan, dari 0 hingga 5.

Indentasi

Setting Tipe Default Deskripsi
mssql.format.options.indentSetClause bool false Beri inden pada klausa SET dalam pernyataan UPDATE.
mssql.format.options.indentViewBody bool false Indentasikan isi VIEW.

Multibaris

Setting Tipe Default Deskripsi
mssql.format.options.multilineInsertSourcesList bool true INSERT sumber sebagai beberapa baris.
mssql.format.options.multilineInsertTargetsList bool true INSERT kolom sebagai beberapa baris.
mssql.format.options.multilineSelectElementsList bool true SELECT kolom sebagai beberapa baris.
mssql.format.options.multilineSetClauseItems bool true SET item dalam beberapa baris.
mssql.format.options.multilineViewColumnsList bool true VIEW kolom sebagai beberapa baris.
mssql.format.options.multilineWherePredicatesList bool true WHERE predikat sebagai multibaris.

Baris baru

Setting Tipe Default Deskripsi
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Baris baru sebelum kurung tertutup dalam daftar multibaris.
mssql.format.options.newLineBeforeFromClause bool true Baris baru sebelum klausa FROM.
mssql.format.options.newLineBeforeGroupByClause bool true Baris baru sebelum klausa GROUP BY.
mssql.format.options.newLineBeforeHavingClause bool true Baris baru sebelum klausa HAVING.
mssql.format.options.newLineBeforeJoinClause bool true Baris baru sebelum klausa JOIN.
mssql.format.options.newLineBeforeOffsetClause bool true Baris baru sebelum klausa OFFSET.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Baris baru sebelum tanda kurung terbuka dalam daftar multibaris.
mssql.format.options.newLineBeforeOrderByClause bool true Baris baru sebelum klausa ORDER BY.
mssql.format.options.newLineBeforeOutputClause bool true Baris baru sebelum klausa OUTPUT.
mssql.format.options.newLineBeforeWhereClause bool true Baris baru sebelum klausa WHERE.
mssql.format.options.newLineBeforeWindowClause bool true Baris baru sebelum klausa WINDOW.
mssql.format.options.newlineFormattedCheckConstraint bool false Batasan berformat CHECK baris baru.
mssql.format.options.newLineFormattedIndexDefinition bool false Definisi indeks dengan format baris baru.

Spacing

Setting Tipe Default Deskripsi
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Jarak antara tipe data dan tanda kurung, misalnya VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Jarak antar parameter dalam tipe data.

Contoh file pengaturan

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

Atur pemformat bawaan

Untuk mengatur ekstensi MSSQL sebagai default, pilih Konfigurasikan Formatter Default...>SQL Server (mssql), atau tambahkan konfigurasi berikut ke settings.json:

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