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 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.

Pengaturan yang didukung

Pengaturan berikut mengonfigurasi pemformat SQL.

Umum

Setting Tipe Default Deskripsi
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 Menyelaraskan bidang definisi kolom, seperti nama, tipe data, dan batasan.
mssql.format.options.alignSetClauseItem bool true Sejajarkan item klausul SET pada pernyataan UPDATE.
mssql.format.options.clauseBodyAlignment enum aligned Pertahankan isi klausa aligned bersama kata kuncinya atau letakkan di baris berikutnya seperti indented.

Casing dan pengenal

Setting Tipe Default Deskripsi
mssql.format.options.builtInFunctionCasing enum preserve Gaya casing untuk nama fungsi bawaan yang didukung, seperti dan GETDATECOALESCE. Nilai yang valid adalah: preserve, uppercase, lowercase, dan pascalCase.
mssql.format.options.identifierBracketing enum preserve Simpan, tambahkan, atau hapus tanda kurung siku opsional di sekitar pengenal. Nilai yang valid adalah preserve, includeBrackets, dan excludeBrackets. Tanda kurung yang diperlukan dipertahankan.
mssql.format.options.identifierCasing enum preserve Gaya casing untuk pengenal objek. Nilai yang valid adalah: preserve, uppercase, lowercase, dan pascalCase.
mssql.format.options.keywordCasing enum uppercase Gaya kapitalisasi kata kunci. Nilai yang valid adalah uppercase, lowercase, dan pascalCase.

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.columnAliasStyle enum asKeyword Format alias kolom menggunakan AS, tanda sama dengan, atau sintaks aslinya. Nilai yang valid adalah asKeyword, equalsSign, dan preserve.
mssql.format.options.commaPlacement enum trailing Tempatkan koma di akhir item daftar (trailing) atau di awal item berikutnya (leading).
mssql.format.options.leadingCommaSpaceCount integer 1 Jumlah spasi setelah koma awal. Nilai yang berlaku adalah 0 atau 1.
mssql.format.options.persistTrailingGo bool false Pertahankan pemisah batch di akhir GO dari skrip asli.
mssql.format.options.preserveComments bool true Pertahankan komentar selama pemformatan.
mssql.format.options.terminateBlockStatements bool false Tambahkan terminator titik koma setelah blok BEGIN...END dan TRY...CATCH.

Indentasi

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

Multibaris

Setting Tipe Default Deskripsi
mssql.format.options.multilineGroupByElementsList bool false Format GROUP BY elemen sebagai daftar multibaris.
mssql.format.options.multilineHavingPredicatesList bool true Predikat format HAVING yang dipisahkan oleh atau ANDOR pada beberapa baris.
mssql.format.options.multilineInsertSourcesList bool true Format INSERT sumber sebagai daftar multibaris.
mssql.format.options.multilineInsertTargetsList bool true Format INSERT kolom sebagai daftar multibaris.
mssql.format.options.multilineInValuesList bool false Format nilai dalam predikat IN sebagai daftar multibaris.
mssql.format.options.multilineNestedFunctionCalls bool false Format panggilan fungsi bersarang pada baris berindentasi terpisah sambil mempertahankan panggilan fungsi terisolasi pada satu baris.
mssql.format.options.multilineOrderByElementsList bool false Format ORDER BY elemen sebagai daftar multibaris.
mssql.format.options.multilinePartitionByElementsList bool false Format PARTITION BY elemen dalam spesifikasi jendela sebagai daftar multibaris.
mssql.format.options.multilineProcedureParametersList bool false Format parameter prosedur dan fungsi pada baris terpisah.
mssql.format.options.multilineSelectElementsList bool true Format SELECT kolom sebagai daftar multibaris.
mssql.format.options.multilineSetClauseItems bool true Format SET item klausa sebagai daftar multibaris.
mssql.format.options.multilineViewColumnsList bool true Format VIEW kolom sebagai daftar multibaris.
mssql.format.options.multilineWherePredicatesList bool true Format WHERE predikat sebagai daftar multibaris.
mssql.format.options.multilineWithOptionsList bool false Format nilai klausa yang didukung oleh WITH dan OPTION pada baris terpisah.

Baris baru

Setting Tipe Default Deskripsi
mssql.format.options.newLineAfterJoinKeyword bool true Tempatkan sumber tabel gabungan pada baris baru setelah JOIN kata kunci.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Tempatkan baris baru di depan tanda kurung penutup dari daftar multibaris.
mssql.format.options.newLineBeforeFromClause bool true Letakkan baris baru sebelum FROM klausul.
mssql.format.options.newLineBeforeGroupByClause bool true Letakkan baris baru sebelum GROUP BY klausul.
mssql.format.options.newLineBeforeHavingClause bool true Letakkan baris baru sebelum HAVING klausul.
mssql.format.options.newLineBeforeJoinClause bool true Tempatkan baris baru sebelum JOIN klausa.
mssql.format.options.newLineBeforeOffsetClause bool true Letakkan baris baru sebelum OFFSET klausul.
mssql.format.options.newLineBeforeOnClause bool true Letakkan klausa ON dari join pada baris baru.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Tempatkan baris baru di depan tanda kurung pembuka dari daftar multibaris.
mssql.format.options.newLineBeforeOrderByClause bool true Letakkan baris baru sebelum ORDER BY klausul.
mssql.format.options.newLineBeforeOutputClause bool true Letakkan baris baru sebelum OUTPUT klausul.
mssql.format.options.newLineBeforeWhereClause bool true Letakkan baris baru sebelum WHERE klausul.
mssql.format.options.newLineBeforeWindowClause bool true Letakkan baris baru sebelum WINDOW klausul.
mssql.format.options.newlineFormattedCheckConstraint bool false Letakkan klausul CHECK dari sebuah batasan pada baris terpisah.
mssql.format.options.newLineFormattedIndexDefinition bool false Tempatkan UNIQUE, INCLUDE, dan WHERE bagian definisi indeks inline pada baris terpisah.

Pernyataan dan jarak batch

Setting Tipe Default Deskripsi
mssql.format.options.numNewlinesAfterBatches integer 1 Jumlah jeda baris setelah setiap pemisah batch GO, dari 0 hingga 5.
mssql.format.options.numNewlinesAfterBatchStatement integer 2 Jumlah pemisah baris setelah setiap pernyataan tingkat atas dalam satu batch, dari 0 hingga 5.
mssql.format.options.numNewlinesAfterStatement integer 1 Jumlah jeda baris setelah setiap pernyataan, dari 0 hingga 5.

Spacing

Setting Tipe Default Deskripsi
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Masukkan spasi antara tipe data dan tanda kurungnya, misalnya VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Sisipkan spasi antar parameter dalam tipe data, misalnya DECIMAL (10, 2).

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