Bagikan melalui


Gambaran Umum Ekstensibilitas untuk Aturan Analisis Kode Database

Edisi Visual Studio yang berisi SQL Server Data Tools menyertakan aturan analisis kode untuk melaporkan desain, penamaan, dan peringatan performa Transact-SQL dalam kode database Anda. Untuk informasi selengkapnya, lihat Menganalisis Kode Database untuk Meningkatkan Kualitas Kode.

Jika aturan analisis kode bawaan tidak menyertakan cakupan untuk masalah Transact-SQL tertentu yang ingin Anda sertakan, Anda dapat membuat aturan analisis kode database kustom. Misalnya, Anda mungkin ingin membuat aturan kustom yang menghindari penggunaan pernyataan WAITFOR DELAY, seperti yang ditunjukkan dalam Panduan Penulisan Rakitan Aturan Analisis Kode Statis Kustom untuk SQL Server. Untuk membuat aturan analisis kode database kustom, Anda menggunakan kelas di namespace CodeAnalysis .

Sebelum membuat aturan analisis kode kustom, Anda harus memahami arsitektur dasar di antara berbagai komponen aturan analisis kode database.

Komponen Aturan Analisis Kode Database

Diagram berikut mengilustrasikan bagaimana komponen aturan analisis kode database berinteraksi:

Aturan Analisis Kode Database KomponenKomponen

Saat Anda menggunakan fitur aturan analisis kode database, baik dengan menjalankan analisis kode statis secara langsung (untuk informasi selengkapnya, lihat Cara: Menganalisis Kode Transact-SQL untuk Menemukan Cacat) atau dengan melakukan build, semua aturan dimuat dan digunakan sesuai dengan cara Anda mengonfigurasinya dalam proyek Anda. Untuk informasi selengkapnya, lihat Cara: Mengaktifkan dan Menonaktifkan Aturan Tertentu untuk Analisis Statis Kode Database. Pengelola Ekstensi juga akan memuat rakitan aturan kustom apa pun yang telah Anda buat dan daftarkan. Untuk informasi selengkapnya, lihat Cara: Menginstal dan Mengelola Ekstensi Fitur.

Kelas aturan analisis kode kustom mewarisi dari SqlCodeAnalysisRule. Kelas aturan kustom dapat mengakses sejumlah objek yang berguna melalui konteks eksekusi aturannya. Ini termasuk:

  • Metadata tentang aturan itu sendiri.

  • Dac.Model.TSqlModel yang mewakili skema database, termasuk semua elemen model, hubungan antara ini dan properti elemen apa pun.

  • Untuk aturan yang memeriksa elemen tertentu, Dac.Model.TSqlObject yang mewakili elemen skema tersebut dalam model disertakan dalam konteks.

  • Banyak objek skema juga memiliki representasi ScriptDom yang dapat diakses melalui konteks ini -Ini adalah representasi berbasis AST dari elemen yang dapat berguna ketika mencoba melihat potensi masalah sintaks seperti kehadiran SelectStarExpression.

Dac.CodeAnalysis.SqlRuleProblem dibuat oleh aturan untuk mewakili masalah apa pun yang ditemukan olehnya. Saat membuat ini, Dac.Model.TSqlObject yang relevan dan mungkin elemen representasi ScriptDom diteruskan ke konstruktor, dan ini digunakan untuk menentukan lokasi masalah dalam file kode sumber Anda. Di akhir analisis, semua masalah ini diteruskan ke Manajer Kesalahan dan ditampilkan dalam Daftar Kesalahan.

Lihat juga

Memperluas Fitur Database