Megosztás a következőn keresztül:


T-SQL-kód elemzése hibák kereséséhez

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az adatbázissémában lévő Transact-SQL kód minőségét úgy javíthatja, hogy importálja egy adatbázisprojektbe, és elemzi a kódot egy szabálykészlet alapján. Előfordulhat például, hogy olyan hibákat szeretne találni egy sémában, amelyet nem fejlesztett ki, és amelynek minőségét nem ellenőrizték. További információ: kódelemzés áttekintése.

Ebben a kezdeti értékelésben az adatbázis kódjában szereplő összes lehetséges problémát szeretné megtalálni. Áttekintheti a figyelmeztetéseket és a figyelmeztetéseket okozó kódot. A T-SQL-kód javítása érdekében kijavíthatja a figyelmeztetéseket, letilthat egy figyelmeztetést, és iteratív módon elemezheti az adatbázisprojektet.

Prerequisites

Ahhoz, hogy elemezni tudja a kódot egy adatbázisprojektben, már rendelkeznie kell egy SQL-projektel. További információkért arról, hogyan lehet egy meglévő adatbázisból kiindulva projektet létrehozni, tekintse meg az oktatóanyagot: Hogyan kezdjünk meglévő adatbázisból?.

SQL-kódelemzés engedélyezése a projekt buildjén

Ha engedélyezni szeretné az SQL-kódelemzést a Visual Studióban, kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Tulajdonságoklehetőséget. A tulajdonságok ablakának Kódelemzés lapján jelölje be a Kódelemzés engedélyezése a build soránjelölőnégyzetet.

Mentse a projekttulajdonságok ablakát, és térjen vissza a megoldáskezelőbe.

Ha sql-projektben szeretné engedélyezni az SQL-kódelemzést, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt, és adjon hozzá egy elemet <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> az első <PropertyGroup> blokkhoz a kódelemzés engedélyezéséhez.

Ha engedélyezni szeretné az SQL-kódelemzést az SQL Database Projects bővítményben, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt az Explorer nézetből, vagy kattintson a jobb gombbal a projektre az Adatbázisprojektek nézetben, és válassza a Edit .sqlproj File(.sqlproj fájl szerkesztése) lehetőséget.

A szövegszerkesztőben adjon hozzá egy <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> elemet az első <PropertyGroup> blokkhoz a kódelemzés engedélyezéséhez.

Ha sql-projektben szeretné engedélyezni az SQL-kódelemzést, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt, és adjon hozzá egy elemet <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> az első <PropertyGroup> blokkhoz a kódelemzés engedélyezéséhez.

A kód elemzése

Ha adatbázisprojektben szeretné elemezni a kódot a buildeléshez engedélyezett kódelemzéssel, kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Buildlehetőséget.

A kimeneti ablak megjeleníti az általános buildelési folyamat eredményeit.

Az adatbázisprojekt T-SQL-kódját a rendszer a buildelés során elemzi. A kódelemzésből származó hibák és figyelmeztetések megjelennek a hibalistában. Ha a hibalista nem jelenik meg, nyissa meg a Nézet menüt, és válassza a Hibalista lehetőséget. A figyelmeztetésre duplán kattintva navigálhat a figyelmeztetést okozó kódsorra.

Ha adatbázisprojektben szeretné elemezni a kódot a buildeléshez engedélyezett kódelemzéssel, kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Buildlehetőséget.

A kimeneti ablak megjeleníti az általános buildelési folyamat eredményeit.

Az adatbázisprojekt T-SQL-kódját a rendszer a buildelés során elemzi. A kódelemzésből származó hibák és figyelmeztetések megjelennek a hibalistában. Ha a hibalista nem jelenik meg, nyissa meg a Nézet menüt, és válassza a Hibalista lehetőséget. A figyelmeztetésre duplán kattintva navigálhat a figyelmeztetést okozó kódsorra.

Ha egy adatbázisprojekt kódját szeretné elemezni a buildeléshez engedélyezett kódelemzéssel, kattintson a jobb gombbal a projektre az Adatbázisprojektek nézetben, és válassza a Buildlehetőséget.

A kimeneti ablak megjeleníti az általános buildelési folyamat eredményeit, valamint a kódelemzésből származó hibákat és figyelmeztetéseket. Az egyes figyelmeztetésekben vagy hibákban megadott fájlok interaktív hivatkozások, amelyek a figyelmeztetést okozó kódsorra lépnek.

Ha adatbázisprojektben szeretné elemezni a kódot, és a kódelemzés engedélyezve van a buildeléskor, futtassa a dotnet build parancsot a projektkönyvtár parancssorából.

dotnet build MyDatabaseProject.sqlproj

A parancs kimenete megjeleníti az általános buildelési folyamat eredményeit, valamint a kódelemzésből származó hibákat és figyelmeztetéseket.

Kódelemzési szabályok konfigurálása

Ha le szeretne tiltani vagy engedélyezni szeretne egy adott szabályt a Visual Studióban, kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Tulajdonságoklehetőséget. A tulajdonságok ablakának Kódelemzés lapján válassza ki a szabályt a táblából. Egy szabály súlyosságának módosításához jelölje be a Figyelmeztetés kezelése hibaként jelölőnégyzetet a listán.

Mentse a projekttulajdonságok ablakát, és térjen vissza a megoldáskezelőbe.

Ha egy SQL-projektben egy adott szabályt szeretne letiltani vagy engedélyezni, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt, és adja hozzá vagy módosítsa a SqlCodeAnalysisRules elemét az első <PropertyGroup> blokkban az engedélyezni vagy letiltani kívánt szabályok megadásához. Az alábbi mintakonfiguráció letilt két szabályt (SR0007 és SR0006), és az SR0008-at úgy módosítja, hogy buildelési hibát eredményezzen. A többi szabály alapértelmezés szerint engedélyezve van.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <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>
...

Ha le szeretne tiltani vagy engedélyezni szeretne egy adott szabályt az SQL Database Projects bővítményben, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt az Explorer nézetből, vagy kattintson a jobb gombbal a projektre az Adatbázisprojektek nézetben, és válassza a Edit .sqlproj File(.sqlproj fájl szerkesztése) lehetőséget.

Adja hozzá vagy módosítsa a SqlCodeAnalysisRules elemét az első <PropertyGroup> blokkban az engedélyezni vagy letiltani kívánt szabályok megadásához. Az alábbi mintakonfiguráció letilt két szabályt (SR0007 és SR0006), és az SR0008-at úgy módosítja, hogy buildelési hibát eredményezzen. A többi szabály alapértelmezés szerint engedélyezve van.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <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>
...

Ha egy SQL-projektben egy adott szabályt szeretne letiltani vagy engedélyezni, szerkessze közvetlenül a .sqlproj fájlt. Nyissa meg a .sqlproj fájlt, és adja hozzá vagy módosítsa a SqlCodeAnalysisRules elemét az első <PropertyGroup> blokkban az engedélyezni vagy letiltani kívánt szabályok megadásához. Az alábbi mintakonfiguráció letilt két szabályt (SR0007 és SR0006), és az SR0008-at úgy módosítja, hogy buildelési hibát eredményezzen. A többi szabály alapértelmezés szerint engedélyezve van.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <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>
...

Kódelemzési figyelmeztetések letiltása

Ha el szeretné tiltani egy adott .sql fájl kódelemzési hibáját vagy figyelmeztetését a Visual Studióban, kattintson a jobb gombbal a figyelmeztetésre a hibalistában, és válassza a Statikus kódelemzési üzenetek letiltásalehetőséget. A szabály és a .sql fájl kódelemzési eredménye el lesz tiltva, és többé nem jelenik meg a hibalistában vagy a build kimenetében.

Note

A figyelmeztetés mellőzése nem oldja meg az alapul szolgáló problémát. Csak akkor tiltsa le a figyelmeztetéseket, ha erre érvényes oka van.

Ha egy SQL-projekt adott .sql fájljának kódelemzési hibáját vagy figyelmeztetését szeretné letiltani, adjon hozzá egy StaticCodeAnalysis.SuppressMessages.xml fájlt a projekthez. A fájlban adja meg a szabályazonosítót és a fájlt a figyelmeztetés letiltásához.

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

Ha a fájl nem létezik, hozza létre a projekt gyökerében. Ha a fájl már létezik, egy új StaticCodeAnalysis.SuppressMessages.xml elem létrehozásával tiltsa le a meglévő <SuppressedFile><SuppressedRule /></SuppressedFile> fájlra vonatkozó további figyelmeztetést.

A szabály és .sql fájl kódelemzési eredménye el lesz tiltva, és már nem jelenik meg a build kimenetében.

Ha el szeretné tiltani egy kódelemzési hibát vagy figyelmeztetést egy adott .sql-fájlhoz az SQL Database Projects bővítményben, adjon hozzá egy StaticCodeAnalysis.SuppressMessages.xml fájlt a projekthez. A fájlban adja meg a szabályazonosítót és a fájlt a figyelmeztetés letiltásához.

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

Ha a fájl nem létezik, hozza létre a projekt gyökerében. Ha a fájl már létezik, egy új StaticCodeAnalysis.SuppressMessages.xml elem létrehozásával tiltsa le a meglévő <SuppressedFile><SuppressedRule /></SuppressedFile> fájlra vonatkozó további figyelmeztetést.

A szabály és .sql fájl kódelemzési eredménye el lesz tiltva, és már nem jelenik meg a build kimenetében.

Ha egy SQL-projekt adott .sql fájljának kódelemzési hibáját vagy figyelmeztetését szeretné letiltani, adjon hozzá egy StaticCodeAnalysis.SuppressMessages.xml fájlt a projekthez. A fájlban adja meg a szabályazonosítót és a fájlt a figyelmeztetés letiltásához.

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

Ha a fájl nem létezik, hozza létre a projekt gyökerében. Ha a fájl már létezik, egy új StaticCodeAnalysis.SuppressMessages.xml elem létrehozásával tiltsa le a meglévő <SuppressedFile><SuppressedRule /></SuppressedFile> fájlra vonatkozó további figyelmeztetést.

A szabály és .sql fájl kódelemzési eredménye el lesz tiltva, és már nem jelenik meg a build kimenetében.