Bagikan melalui


Menganalisis kode T-SQL untuk menemukan cacat

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Anda dapat meningkatkan kualitas kode Transact-SQL dalam skema database dengan mengimpornya ke dalam proyek database dan menganalisis kode terhadap serangkaian aturan. Misalnya, Anda mungkin ingin menemukan kesalahan dalam skema yang tidak Anda kembangkan dan kualitasnya belum diverifikasi. Untuk informasi selengkapnya, lihat gambaran umum analisis kode.

Untuk penilaian awal ini, Anda ingin menemukan semua potensi masalah dalam kode database. Anda meninjau peringatan dan kode yang menyebabkan peringatan tersebut. Untuk meningkatkan kode T-SQL, Anda memperbaiki peringatan, berpotensi menekan peringatan, dan secara berulang menganalisis proyek database.

Prasyarat

Sebelum dapat menganalisis kode dalam proyek database, Anda harus sudah memiliki proyek SQL. Untuk informasi selengkapnya tentang menggunakan database yang sudah ada untuk membuat proyek, lihat Tutorial: mulai dari database yang sudah ada.

Mengaktifkan analisis kode SQL pada build proyek

Untuk mengaktifkan analisis kode SQL di Visual Studio, klik kanan proyek di Penjelajah Solusi dan pilih Properti. Di tab Analisis Kode dari jendela properti, pilih kotak centang untuk Mengaktifkan Analisis Kode pada Build.

Simpan jendela properti proyek dan kembali ke penjelajah solusi.

Untuk mengaktifkan analisis kode SQL dalam proyek SQL, edit file secara .sqlproj langsung. .sqlproj Buka file dan tambahkan elemen <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ke blok pertama <PropertyGroup> untuk mengaktifkan analisis kode.

Untuk mengaktifkan analisis kode SQL di ekstensi Proyek SQL Database, edit file secara .sqlproj langsung. .sqlproj Buka file dari tampilan Explorer atau dengan mengklik kanan proyek dalam tampilan Proyek Database dan pilih Edit File .sqlproj.

Dari editor teks, tambahkan elemen <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ke blok pertama <PropertyGroup> untuk mengaktifkan analisis kode.

Untuk mengaktifkan analisis kode SQL dalam proyek SQL, edit file secara .sqlproj langsung. .sqlproj Buka file dan tambahkan elemen <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ke blok pertama <PropertyGroup> untuk mengaktifkan analisis kode.

Menganalisis kode

Untuk menganalisis kode dalam proyek database dengan analisis kode diaktifkan pada build, klik kanan proyek di Penjelajah Solusi dan pilih Bangun.

Jendela output menampilkan hasil proses build keseluruhan.

Kode T-SQL dalam proyek database Anda dianalisis selama build. Kesalahan dan peringatan dari analisis kode muncul di Daftar Kesalahan. Jika Daftar Kesalahan tidak muncul, buka menu Tampilan, dan pilih Daftar Kesalahan. Anda dapat mengeklik dua kali peringatan untuk menavigasi ke baris kode yang menyebabkan peringatan.

Untuk menganalisis kode dalam proyek database dengan analisis kode diaktifkan pada build, klik kanan proyek di Penjelajah Solusi dan pilih Bangun.

Jendela output menampilkan hasil proses build keseluruhan.

Kode T-SQL dalam proyek database Anda dianalisis selama build. Kesalahan dan peringatan dari analisis kode muncul di Daftar Kesalahan. Jika Daftar Kesalahan tidak muncul, buka menu Tampilan, dan pilih Daftar Kesalahan. Anda dapat mengeklik dua kali peringatan untuk menavigasi ke baris kode yang menyebabkan peringatan.

Untuk menganalisis kode dalam proyek database dengan analisis kode diaktifkan pada build, klik kanan proyek dalam tampilan Proyek Database dan pilih Bangun.

Jendela output menampilkan hasil proses build keseluruhan dan kesalahan atau peringatan apa pun dari analisis kode. File yang ditentukan dalam setiap peringatan atau kesalahan adalah tautan interaktif yang menavigasi ke baris kode yang menyebabkan peringatan.

Untuk menganalisis kode dalam proyek database dengan analisis kode diaktifkan pada build, jalankan dotnet build perintah dari baris perintah di direktori proyek.

dotnet build MyDatabaseProject.sqlproj

Output dari perintah menampilkan hasil proses build keseluruhan dan kesalahan atau peringatan apa pun dari analisis kode.

Mengonfigurasi aturan analisis kode

Untuk menonaktifkan atau mengaktifkan aturan tertentu di Visual Studio, klik kanan proyek di Penjelajah Solusi dan pilih Properti. Di tab Analisis Kode dari jendela properti, pilih aturan dari tabel. Untuk mengubah tingkat keparahan aturan, pilih kotak untuk Perlakukan Peringatan sebagai Kesalahan untuk aturan tersebut dari daftar.

Simpan jendela properti proyek dan kembali ke penjelajah solusi.

Untuk menonaktifkan atau mengaktifkan aturan tertentu dalam proyek SQL, edit file secara .sqlproj langsung. .sqlproj Buka file dan tambahkan atau ubah elemen untuk SqlCodeAnalysisRules di blok pertama <PropertyGroup> untuk menentukan aturan yang akan diaktifkan atau dinonaktifkan. Konfigurasi sampel berikut menonaktifkan dua aturan (SR0007 dan SR0006) dan mengalihkan SR0008 untuk mengakibatkan kesalahan build. Aturan lainnya diaktifkan secara default.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="0.2.0-preview" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Untuk menonaktifkan atau mengaktifkan aturan tertentu dalam ekstensi Proyek SQL Database, edit file secara .sqlproj langsung. .sqlproj Buka file dari tampilan Explorer atau dengan mengklik kanan proyek dalam tampilan Proyek Database dan pilih Edit File .sqlproj.

Tambahkan atau ubah elemen untuk SqlCodeAnalysisRules di blok pertama <PropertyGroup> untuk menentukan aturan yang akan diaktifkan atau dinonaktifkan. Konfigurasi sampel berikut menonaktifkan dua aturan (SR0007 dan SR0006) dan mengalihkan SR0008 untuk mengakibatkan kesalahan build. Aturan lainnya diaktifkan secara default.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="0.2.0-preview" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Untuk menonaktifkan atau mengaktifkan aturan tertentu dalam proyek SQL, edit file secara .sqlproj langsung. .sqlproj Buka file dan tambahkan atau ubah elemen untuk SqlCodeAnalysisRules di blok pertama <PropertyGroup> untuk menentukan aturan yang akan diaktifkan atau dinonaktifkan. Konfigurasi sampel berikut menonaktifkan dua aturan (SR0007 dan SR0006) dan mengalihkan SR0008 untuk mengakibatkan kesalahan build. Aturan lainnya diaktifkan secara default.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="0.2.0-preview" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Menyembunyikan peringatan kode analisis

Untuk menekan kesalahan analisis kode atau peringatan untuk file tertentu .sql di Visual Studio, klik kanan peringatan di Daftar Kesalahan dan pilih Sembunyikan Pesan Analisis Kode Statis. Hasil analisis kode untuk aturan dan .sql file tersebut ditekan dan tidak lagi muncul di Daftar Kesalahan atau output build.

Catatan

Menekan peringatan tidak memperbaiki masalah yang mendasar. Sembunyikan peringatan hanya ketika Anda memiliki alasan yang valid untuk melakukannya.

Untuk menekan kesalahan analisis kode atau peringatan untuk file tertentu .sql dalam proyek SQL, tambahkan StaticCodeAnalysis.SuppressMessages.xml file ke proyek. Dalam file, tentukan ID aturan dan file untuk menekan peringatan.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Jika file tidak ada, buat di akar proyek. Jika file sudah ada, tekan peringatan tambahan ke file yang ada StaticCodeAnalysis.SuppressMessages.xml dengan membuat elemen baru <SuppressedFile><SuppressedRule /></SuppressedFile> .

Hasil analisis kode untuk aturan dan .sql file tersebut ditekan dan tidak lagi muncul dalam output build.

Untuk menekan kesalahan analisis kode atau peringatan untuk file tertentu .sql di ekstensi Proyek SQL Database, tambahkan StaticCodeAnalysis.SuppressMessages.xml file ke proyek. Dalam file, tentukan ID aturan dan file untuk menekan peringatan.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Jika file tidak ada, buat di akar proyek. Jika file sudah ada, tekan peringatan tambahan ke file yang ada StaticCodeAnalysis.SuppressMessages.xml dengan membuat elemen baru <SuppressedFile><SuppressedRule /></SuppressedFile> .

Hasil analisis kode untuk aturan dan .sql file tersebut ditekan dan tidak lagi muncul dalam output build.

Untuk menekan kesalahan analisis kode atau peringatan untuk file tertentu .sql dalam proyek SQL, tambahkan StaticCodeAnalysis.SuppressMessages.xml file ke proyek. Dalam file, tentukan ID aturan dan file untuk menekan peringatan.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Jika file tidak ada, buat di akar proyek. Jika file sudah ada, tekan peringatan tambahan ke file yang ada StaticCodeAnalysis.SuppressMessages.xml dengan membuat elemen baru <SuppressedFile><SuppressedRule /></SuppressedFile> .

Hasil analisis kode untuk aturan dan .sql file tersebut ditekan dan tidak lagi muncul dalam output build.