Analýza kódu T-SQL za účelem zjištění vad
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
Kvalitu kódu Transact-SQL ve schématu databáze můžete zlepšit tak, že ho naimportujete do databázového projektu a analyzujete kód proti sadě pravidel. Můžete například chtít najít jakékoli chyby ve schématu, které jste nevytvořili a jejichž kvalita nebyla ověřena. Další informace viz přehled o analýze kódu.
Pro účely tohoto počátečního posouzení chcete najít všechny potenciální problémy v databázovém kódu. Zkontrolujete upozornění a kód, který tato upozornění způsobil. Pokud chcete zlepšit kód T-SQL, opravujete upozornění, potenciálně potlačujete upozornění a iterativně analyzujete databázový projekt.
Požadavky
Než budete moct analyzovat kód v databázovém projektu, musíte už mít projekt SQL. Další informace o použití existující databáze k vytvoření projektu naleznete v tématu Kurz: Začněte od existující databáze.
Povolení analýzy kódu SQL v sestavení projektu
Pokud chcete povolit analýzu kódu SQL v sadě Visual Studio, klikněte pravým tlačítkem na projekt v průzkumníku řešení a vyberte Vlastnosti. V kartě Analýza kódu v okně vlastností zaškrtněte políčko Povolit analýzu kódu při sestavení.
Uložte okno vlastností projektu a vraťte se do Průzkumníka řešení.
Pokud chcete povolit analýzu kódu SQL v projektu SQL, upravte přímo .sqlproj
soubor. Otevřete soubor .sqlproj
a přidejte prvek <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do prvního bloku <PropertyGroup>
, který povolí analýzu kódu.
Pokud chcete povolit analýzu kódu SQL v rozšíření SQL Database Projects, upravte soubor .sqlproj
přímo. Otevřete soubor .sqlproj
v zobrazení Exploreru nebo kliknutím pravým tlačítkem myši na projekt v zobrazení Databázové projekty a výběrem možnosti Upravitsouboru .sqlproj .
Z textového editoru přidejte prvek <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do prvního bloku <PropertyGroup>
pro povolení analýzy kódu.
Pokud chcete povolit analýzu kódu SQL v projektu SQL, upravte přímo .sqlproj
soubor. Otevřete soubor .sqlproj
a přidejte prvek <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do prvního bloku <PropertyGroup>
, který povolí analýzu kódu.
Analýza kódu
Pokud chcete analyzovat kód v databázovém projektu s povolenou analýzou kódu při sestavování, klikněte pravým tlačítkem na projekt v průzkumníku řešení a vyberte Sestavit.
Okno výstupu zobrazuje výsledky celkového procesu sestavení.
Kód T-SQL v databázovém projektu se analyzuje během sestavování. Chyby a upozornění z analýzy kódu se zobrazí v seznamu chyb. Pokud se seznam chyb nezobrazí, otevřete nabídku Zobrazení a vyberte seznam chyb. Poklikáním na upozornění můžete přejít na řádek kódu, který upozornění způsobil.
Pokud chcete analyzovat kód v databázovém projektu s povolenou analýzou kódu při sestavování, klikněte pravým tlačítkem na projekt v průzkumníku řešení a vyberte Sestavit.
V okně výstupu se zobrazí výsledky celkového procesu sestavení.
Kód T-SQL v databázovém projektu se analyzuje během sestavování. Chyby a upozornění z analýzy kódu se zobrazí v seznamu chyb. Pokud se seznam chyb nezobrazí, otevřete nabídku Zobrazení a vyberte seznam chyb. Poklikáním na upozornění můžete přejít na řádek kódu, který upozornění způsobil.
Pokud chcete analyzovat kód v databázovém projektu s povolenou analýzou kódu při sestavení, klikněte pravým tlačítkem na projekt v zobrazení Databázové projekty a vyberte Sestavení.
V okně výstupu se zobrazí výsledky celkového procesu sestavení a všechny chyby nebo upozornění z analýzy kódu. Soubory zadané v každém upozornění nebo chybě jsou interaktivní odkazy, které přejdou na řádek kódu, který upozornění způsobil.
Pokud chcete analyzovat kód v databázovém projektu s povolenou analýzou kódu při sestavení, spusťte příkaz dotnet build
z příkazového řádku v adresáři projektu.
dotnet build MyDatabaseProject.sqlproj
Výstup příkazu zobrazí výsledky celkového procesu sestavení a případné chyby nebo upozornění z analýzy kódu.
Konfigurace pravidel analýzy kódu
Pokud chcete ve Visual Studiu zakázat nebo povolit konkrétní pravidlo, klikněte pravým tlačítkem na projekt v Průzkumníku řešení a vyberte Vlastnosti. V záložce Analýza kódu v okně vlastností vyberte pravidlo z tabulky. Pokud chcete změnit závažnost pravidla, zaškrtněte políčko pro Považovat upozornění za chybu pro toto pravidlo ze seznamu.
Uložte okno vlastností projektu a vraťte se do Průzkumníka řešení.
Pokud chcete zakázat nebo povolit konkrétní pravidlo v projektu SQL, upravte soubor .sqlproj
přímo. Otevřete soubor .sqlproj
a přidejte nebo upravte prvek pro SqlCodeAnalysisRules
v prvním <PropertyGroup>
bloku a určete pravidla, která se mají povolit nebo zakázat. Následující ukázková konfigurace zakáže dvě pravidla (SR0007 a SR0006) a přepne SR0008 tak, aby výsledkem byla chyba sestavení. Zbývající pravidla jsou ve výchozím nastavení povolená.
<?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>
...
Pokud chcete zakázat nebo povolit konkrétní pravidlo v rozšíření projektů služby SQL Database, upravte soubor .sqlproj
přímo. Otevřete soubor .sqlproj
ve zobrazení Exploreru nebo klikněte pravým tlačítkem myši na projekt ve zobrazení Databázové projekty a zvolte možnost Upravit soubor .sqlproj.
Přidejte nebo upravte prvek pro SqlCodeAnalysisRules
v prvním bloku <PropertyGroup>
a určete pravidla, která se mají povolit nebo zakázat. Následující ukázková konfigurace zakáže dvě pravidla (SR0007 a SR0006) a přepne SR0008 tak, aby výsledkem byla chyba sestavení. Zbývající pravidla jsou ve výchozím nastavení povolená.
<?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>
...
Pokud chcete zakázat nebo povolit konkrétní pravidlo v projektu SQL, upravte soubor .sqlproj
přímo. Otevřete soubor .sqlproj
a přidejte nebo upravte prvek pro SqlCodeAnalysisRules
v prvním <PropertyGroup>
bloku a určete pravidla, která se mají povolit nebo zakázat. Následující ukázková konfigurace zakáže dvě pravidla (SR0007 a SR0006) a přepne SR0008 tak, aby výsledkem byla chyba sestavení. Zbývající pravidla jsou ve výchozím nastavení povolená.
<?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>
...
Potlačení upozornění analýzy kódu
Chcete-li potlačit chybu nebo upozornění analýzy kódu pro konkrétní soubor .sql
v sadě Visual Studio, klikněte pravým tlačítkem myši na upozornění v Seznamu chyb a vyberte Potlačit zprávu/y statické analýzy kódu . Výsledek analýzy kódu pro toto pravidlo a soubor .sql
je potlačen a už se nezobrazuje v seznamu chyb nebo výstupu sestavení.
Poznámka
Potlačení upozornění neřeší základní problém. Varování potlačujte pouze tehdy, máte-li k tomu platný důvod.
Pokud chcete potlačit chybu nebo upozornění analýzy kódu pro konkrétní soubor .sql
v projektu SQL, přidejte do projektu soubor StaticCodeAnalysis.SuppressMessages.xml
. V souboru zadejte ID pravidla a soubor pro potlačení upozornění.
<?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>
Pokud soubor neexistuje, vytvořte ho v kořenovém adresáři projektu. Pokud soubor již existuje, potlačte další upozornění na existující soubor StaticCodeAnalysis.SuppressMessages.xml
vytvořením nového prvku <SuppressedFile><SuppressedRule /></SuppressedFile>
.
Výsledek analýzy kódu pro toto pravidlo a soubor .sql
je zamlčen a už se nezobrazuje ve výstupu kompilace.
Chcete-li potlačit chybu nebo upozornění analýzy kódu pro konkrétní soubor .sql
v rozšíření projekty služby SQL Database, přidejte do projektu soubor StaticCodeAnalysis.SuppressMessages.xml
. V souboru zadejte ID pravidla a soubor pro potlačení upozornění.
<?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>
Pokud soubor neexistuje, vytvořte ho v kořenovém adresáři projektu. Pokud soubor již existuje, potlačte další upozornění na existující soubor StaticCodeAnalysis.SuppressMessages.xml
vytvořením nového prvku <SuppressedFile><SuppressedRule /></SuppressedFile>
.
Výsledek analýzy kódu pro pravidlo a soubor .sql
je potlačen a už se nezobrazuje ve výstupu sestavení.
Pokud chcete potlačit chybu nebo upozornění analýzy kódu pro konkrétní soubor .sql
v projektu SQL, přidejte do projektu soubor StaticCodeAnalysis.SuppressMessages.xml
. V souboru zadejte ID pravidla a soubor pro potlačení upozornění.
<?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>
Pokud soubor neexistuje, vytvořte ho v kořenovém adresáři projektu. Pokud soubor již existuje, potlačte další upozornění u již existujícího souboru StaticCodeAnalysis.SuppressMessages.xml
vytvořením nového <SuppressedFile><SuppressedRule /></SuppressedFile>
prvku.
Výsledek analýzy kódu pro dané pravidlo a soubor .sql
je potlačen a už se nezobrazuje ve výstupu sestavení.