Analysera T-SQL-kod för att hitta defekter
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Du kan förbättra kvaliteten på Transact-SQL kod i ett databasschema genom att importera den till ett databasprojekt och analysera koden mot en uppsättning regler. Du kanske till exempel vill hitta fel i ett schema som du inte utvecklade och vars kvalitet inte har verifierats. För mer information, se översikten över kodanalys .
För den här inledande utvärderingen vill du hitta alla potentiella problem i databaskoden. Du granskar varningarna och koden som orsakade varningarna. För att förbättra T-SQL-koden korrigerar du varningar, eventuellt undertrycker en varning och analyserar databasprojektet iterativt.
Förutsättningar
Innan du kan analysera koden i ett databasprojekt måste du redan ha ett SQL-projekt. Mer information om hur du använder en befintlig databas för att skapa ett projekt finns i Självstudie: starta från en befintlig databas.
Aktivera SQL-kodanalys i projektversion
Om du vill aktivera SQL-kodanalys i Visual Studio högerklickar du på projektet i Solution Explorer och väljer Egenskaper. På fliken Kodanalys i egenskapsfönstret markerar du kryssrutan för Aktivera kodanalys vid kompilering.
Spara fönstret projektegenskaper och återgå till Solution Explorer.
Om du vill aktivera SQL-kodanalys i ett SQL-projekt redigerar du filen .sqlproj
direkt. Öppna filen .sqlproj
och lägg till ett element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
i det första <PropertyGroup>
-blocket för att aktivera kodanalys.
Om du vill aktivera SQL-kodanalys i SQL Database Projects-tillägget redigerar du filen .sqlproj
direkt. Öppna filen .sqlproj
från vyn Explorer eller högerklicka på projektet i vyn Database Projects och välj Redigera .sqlproj-fil.
Från textredigeraren lägger du till ett element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
till det första <PropertyGroup>
blocket för att aktivera kodanalys.
Om du vill aktivera SQL-kodanalys i ett SQL-projekt redigerar du filen .sqlproj
direkt. Öppna filen .sqlproj
och lägg till ett element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
i det första <PropertyGroup>
-blocket för att aktivera kodanalys.
Analysera koden
Om du vill analysera koden i ett databasprojekt med kodanalys aktiverad vid kompilering högerklickar du på projektet i Solution Explorer och väljer Build.
Fönstret för output visar resultatet av den övergripande byggprocessen.
T-SQL-koden i databasprojektet analyseras under bygget. Fel och varningar från kodanalys visas i fellista. Om fellista inte visas öppnar du menyn Visa och väljer fellista. Du kan dubbelklicka på en varning för att navigera till den kodrad som orsakade varningen.
Om du vill analysera koden i ett databasprojekt med kodanalys aktiverad vid kompilering högerklickar du på projektet i Solution Explorer och väljer Build.
Fönstret utdata visar resultatet av den övergripande byggprocessen.
T-SQL-koden i databasprojektet analyseras under bygget. Fel och varningar från kodanalys visas i fellista. Om fellista inte visas öppnar du menyn Visa och väljer fellista. Du kan dubbelklicka på en varning för att navigera till den kodrad som orsakade varningen.
Om du vill analysera koden i ett databasprojekt med kodanalys aktiverad vid kompilering högerklickar du på projektet i vyn Database Projects och väljer Build.
Utdatafönstret visar resultaten av den övergripande byggprocessen och eventuella fel eller varningar från kodanalysen. Filerna som anges i varje varning eller fel är interaktiva länkar som navigerar till den kodrad som orsakade varningen.
Om du vill analysera koden i ett databasprojekt med kodanalys aktiverad vid kompilering kör du kommandot dotnet build
från kommandoraden i projektkatalogen.
dotnet build MyDatabaseProject.sqlproj
Utdata från kommandot visar resultatet av den övergripande byggprocessen och eventuella fel eller varningar från kodanalys.
Konfigurera regler för kodanalys
Om du vill inaktivera eller aktivera en specifik regel i Visual Studio högerklickar du på projektet i Solution Explorer och väljer Egenskaper. På fliken Kodanalys i egenskapsfönstret väljer du regeln i tabellen. Om du vill ändra allvarlighetsgraden för en regel markerar du rutan för Behandla varning som fel för regeln i listan.
Spara fönstret projektegenskaper och återgå till Solution Explorer.
Om du vill inaktivera eller aktivera en specifik regel i ett SQL-projekt redigerar du filen .sqlproj
direkt. Öppna .sqlproj
-filen och lägg till eller ändra elementet för SqlCodeAnalysisRules
i det första <PropertyGroup>
blocket för att ange vilka regler som ska aktiveras eller inaktiveras. Följande exempelkonfiguration inaktiverar två regler (SR0007 och SR0006) och växlar SR0008 för att resultera i ett versionsfel. Resten av reglerna är aktiverade som standard.
<?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>
...
Om du vill inaktivera eller aktivera en specifik regel i SQL Database Projects-tillägget redigerar du filen .sqlproj
direkt. Öppna filen .sqlproj
från vyn Explorer eller högerklicka på projektet i vyn Database Projects och välj Redigera .sqlproj-fil.
Lägg till eller ändra elementet för SqlCodeAnalysisRules
i det första <PropertyGroup>
-blocket för att ange vilka regler som ska aktiveras eller inaktiveras. Följande exempelkonfiguration inaktiverar två regler (SR0007 och SR0006) och växlar SR0008 för att resultera i ett versionsfel. Resten av reglerna är aktiverade som standard.
<?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>
...
Om du vill inaktivera eller aktivera en specifik regel i ett SQL-projekt redigerar du filen .sqlproj
direkt. Öppna .sqlproj
-filen och lägg till eller ändra elementet för SqlCodeAnalysisRules
i det första <PropertyGroup>
blocket för att ange vilka regler som ska aktiveras eller inaktiveras. Följande exempelkonfiguration inaktiverar två regler (SR0007 och SR0006) och växlar SR0008 för att resultera i ett versionsfel. Resten av reglerna är aktiverade som standard.
<?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>
...
Ignorera kodanalysvarningar
Om du vill förhindra ett kodanalysfel eller en varning för en specifik .sql
fil i Visual Studio högerklickar du på varningen i fellista och väljer Utelämna statiska kodanalysmeddelanden. Kodanalysresultatet för den regeln och .sql
filen ignoreras och visas inte längre i fellista eller kompileringsutdata.
Notera
Om du utelämnar en varning åtgärdas inte det underliggande problemet. Ignorera endast varningar när du har en giltig anledning att göra det.
Om du vill förhindra ett kodanalysfel eller en varning för en specifik .sql
fil i ett SQL-projekt lägger du till en StaticCodeAnalysis.SuppressMessages.xml
fil i projektet. I filen anger du regel-ID och den fil som varningen ska ignoreras för.
<?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>
Om filen inte finns skapar du den i projektets rot. Om filen redan finns undertrycker du ytterligare en varning till den befintliga StaticCodeAnalysis.SuppressMessages.xml
-filen genom att skapa ett nytt <SuppressedFile><SuppressedRule /></SuppressedFile>
element.
Kodanalysresultatet för regeln och .sql
filen ignoreras och visas inte längre i byggutdata.
Om du vill förhindra ett kodanalysfel eller en varning för en specifik .sql
fil i SQL Database Projects-tillägget lägger du till en StaticCodeAnalysis.SuppressMessages.xml
fil i projektet. I filen anger du regel-ID och den fil som varningen ska ignoreras för.
<?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>
Om filen inte finns skapar du den i projektets rot. Om filen redan finns undertrycker du ytterligare en varning till den befintliga StaticCodeAnalysis.SuppressMessages.xml
-filen genom att skapa ett nytt <SuppressedFile><SuppressedRule /></SuppressedFile>
element.
Kodanalysresultatet för regeln och .sql
filen ignoreras och visas inte längre i byggutdata.
Om du vill förhindra ett kodanalysfel eller en varning för en specifik .sql
fil i ett SQL-projekt lägger du till en StaticCodeAnalysis.SuppressMessages.xml
fil i projektet. I filen anger du regel-ID och den fil som varningen ska ignoreras för.
<?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>
Om filen inte finns skapar du den i projektets rot. Om filen redan finns undertrycker du ytterligare en varning till den befintliga StaticCodeAnalysis.SuppressMessages.xml
-filen genom att skapa ett nytt <SuppressedFile><SuppressedRule /></SuppressedFile>
element.
Kodanalysresultatet för regeln och .sql
filen ignoreras och visas inte längre i byggutdata.