Analizowanie kodu T-SQL w celu znalezienia wad
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL database w usłudze Microsoft Fabric
Jakość kodu Transact-SQL w schemacie bazy danych można poprawić, importując go do projektu bazy danych i analizując kod względem zestawu reguł. Na przykład możesz znaleźć błędy w schemacie, którego nie utworzono i których jakość nie została zweryfikowana. Aby uzyskać więcej informacji, zobacz omówienie analizy kodu .
Na potrzeby tej wstępnej oceny chcesz znaleźć wszystkie potencjalne problemy w kodzie bazy danych. Przejrzyj ostrzeżenia i kod, który spowodował te ostrzeżenia. Aby ulepszyć kod T-SQL, należy poprawić ostrzeżenia, potencjalnie pominąć ostrzeżenie i iteracyjnie analizować projekt bazy danych.
Warunki wstępne
Aby można było przeanalizować kod w projekcie bazy danych, musisz mieć już projekt SQL. Aby uzyskać więcej informacji na temat tworzenia projektu przy użyciu istniejącej bazy danych, zobacz Samouczek: rozpoczynanie od istniejącej bazy danych.
Włączanie analizy kodu SQL w kompilacji projektu
Aby włączyć analizę kodu SQL w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję właściwości . Na karcie analizy kodu okna właściwości zaznacz pole wyboru Włącz analizę kodu wkompilacji.
Zapisz okno właściwości projektu i wróć do Eksploratora rozwiązań.
Aby włączyć analizę kodu SQL w projekcie SQL, edytuj plik .sqlproj
bezpośrednio. Otwórz plik .sqlproj
i dodaj element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do pierwszego bloku <PropertyGroup>
w celu włączenia analizy kodu.
Aby włączyć analizę kodu SQL w rozszerzeniu SQL Database Projects, edytuj plik .sqlproj
bezpośrednio. Otwórz plik .sqlproj
w widoku Eksploratora lub kliknij prawym przyciskiem myszy na projekt w widoku Database Projects i wybierz opcję Edytuj plik .sqlproj.
W edytorze tekstów dodaj element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do pierwszego bloku <PropertyGroup>
w celu włączenia analizy kodu.
Aby włączyć analizę kodu SQL w projekcie SQL, edytuj plik .sqlproj
bezpośrednio. Otwórz plik .sqlproj
i dodaj element <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
do pierwszego bloku <PropertyGroup>
w celu włączenia analizy kodu.
Analizowanie kodu
Aby przeanalizować kod w projekcie bazy danych z włączoną analizą kodu w kompilacji, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję Kompiluj.
Okno wyjściowe wyświetla wyniki ogólnego procesu kompilacji.
Kod T-SQL w projekcie bazy danych jest analizowany podczas kompilacji. Błędy i ostrzeżenia z analizy kodu są wyświetlane na liście błędów . Jeśli lista błędów nie jest wyświetlana, otwórz menu Widok i wybierz pozycję Lista błędów. Możesz kliknąć dwukrotnie ostrzeżenie, aby przejść do wiersza kodu, który spowodował ostrzeżenie.
Aby przeanalizować kod w projekcie bazy danych z włączoną analizą kodu w kompilacji, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję Kompiluj.
Okno danych wyjściowych wyświetla wyniki ogólnego procesu kompilacji.
Kod T-SQL w projekcie bazy danych jest analizowany podczas kompilacji. Błędy i ostrzeżenia z analizy kodu są wyświetlane na liście błędów . Jeśli lista błędów nie pojawia się, otwórz menu Widok i wybierz Listę błędów. Możesz kliknąć dwukrotnie ostrzeżenie, aby przejść do wiersza kodu, który spowodował ostrzeżenie.
Aby przeanalizować kod w projekcie bazy danych z włączoną analizą kodu w kompilacji, kliknij prawym przyciskiem myszy projekt w widoku Database Projects i wybierz pozycję Build.
Okno wyjściowe wyświetla wyniki ogólnego procesu kompilacji oraz wszelkie błędy lub ostrzeżenia z analizy kodu. Pliki określone w każdym ostrzeżeniu lub błędzie to linki interakcyjne, które przechodzą do wiersza kodu, który spowodował ostrzeżenie.
Aby przeanalizować kod w projekcie bazy danych z włączoną analizą kodu w kompilacji, uruchom polecenie dotnet build
z wiersza polecenia w katalogu projektu.
dotnet build MyDatabaseProject.sqlproj
Dane wyjściowe polecenia wyświetlają wyniki ogólnego procesu kompilacji oraz wszelkie błędy lub ostrzeżenia z analizy kodu.
Konfigurowanie reguł analizy kodu
Aby wyłączyć lub włączyć określoną regułę w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję właściwości . Na karcie Analiza Kodu okna właściwości wybierz regułę z tabeli. Aby zmienić stopień ważności reguły, zaznacz pole Traktuj ostrzeżenie jako błąd dla tej reguły z listy.
Zapisz okno właściwości projektu i wróć do Eksploratora rozwiązań.
Aby wyłączyć lub włączyć konkretną regułę w projekcie SQL, edytuj bezpośrednio plik .sqlproj
. Otwórz plik .sqlproj
i dodaj lub zmodyfikuj element dla SqlCodeAnalysisRules
w pierwszym bloku <PropertyGroup>
, aby określić reguły włączania lub wyłączania. Poniższa przykładowa konfiguracja wyłącza dwie reguły (SR0007 i SR0006) i zmienia SR0008 tak, aby skutkować błędem kompilacji. Pozostałe reguły są domyślnie włączone.
<?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>
...
Aby wyłączyć lub włączyć określoną regułę w rozszerzeniu SQL Database Projects, edytuj plik .sqlproj
bezpośrednio. Otwórz plik .sqlproj
w widoku Eksploratora lub klikając prawym przyciskiem myszy projekt w widoku Database Projects i wybierając pozycję Edytuj plik sqlproj.
Dodaj lub zmodyfikuj element dla SqlCodeAnalysisRules
w pierwszym bloku <PropertyGroup>
, aby określić reguły włączania lub wyłączania. Poniższa przykładowa konfiguracja wyłącza dwie reguły (SR0007 i SR0006) i przełącza SR0008, co skutkuje błędem kompilacji. Pozostałe reguły są domyślnie włączone.
<?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>
...
Aby wyłączyć lub włączyć konkretną regułę w projekcie SQL, edytuj bezpośrednio plik .sqlproj
. Otwórz plik .sqlproj
i dodaj lub zmodyfikuj element dla SqlCodeAnalysisRules
w pierwszym bloku <PropertyGroup>
, aby określić reguły włączania lub wyłączania. Poniższa przykładowa konfiguracja wyłącza dwie reguły (SR0007 i SR0006) oraz ustawia SR0008 tak, aby skutkowała błędem kompilacji. Pozostałe reguły są domyślnie włączone.
<?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>
...
Pomijanie ostrzeżeń dotyczących analizy kodu
Aby pominąć błąd analizy kodu lub ostrzeżenie dla określonego pliku .sql
w programie Visual Studio, kliknij prawym przyciskiem myszy ostrzeżenie na liście błędów i wybierz pozycję Pomiń komunikaty analizy kodu statycznego. Wynik analizy kodu dla tej reguły i pliku .sql
jest pomijany i nie jest już wyświetlany na liście błędów lub danych wyjściowych kompilacji.
Notatka
Pomijanie ostrzeżenia nie rozwiązuje problemu podstawowego. Pomijanie ostrzeżeń tylko wtedy, gdy masz prawidłowy powód, aby to zrobić.
Aby pominąć błąd analizy kodu lub ostrzeżenie dla określonego pliku .sql
w projekcie SQL, dodaj plik StaticCodeAnalysis.SuppressMessages.xml
do projektu. W pliku określ identyfikator reguły i plik, aby wyłączyć ostrzeżenie.
<?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>
Jeśli plik nie istnieje, utwórz go w katalogu głównym projektu. Jeśli plik już istnieje, pomiń dodatkowe ostrzeżenie do istniejącego pliku StaticCodeAnalysis.SuppressMessages.xml
, tworząc nowy element <SuppressedFile><SuppressedRule /></SuppressedFile>
.
Wynik analizy kodu dla tej reguły i pliku .sql
jest pomijany i nie jest już wyświetlany w danych wyjściowych kompilacji.
Aby pominąć błąd analizy kodu lub ostrzeżenie dla określonego pliku .sql
w rozszerzeniu SQL Database Projects, dodaj plik StaticCodeAnalysis.SuppressMessages.xml
do projektu. W pliku określ identyfikator reguły i plik, w celu pominięcia ostrzeżenia.
<?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>
Jeśli plik nie istnieje, utwórz go w katalogu głównym projektu. Jeśli plik już istnieje, pomiń dodatkowe ostrzeżenie do istniejącego pliku StaticCodeAnalysis.SuppressMessages.xml
, tworząc nowy element <SuppressedFile><SuppressedRule /></SuppressedFile>
.
Wynik analizy kodu dla tej reguły i pliku .sql
jest pomijany i nie jest już wyświetlany w danych wyjściowych kompilacji.
Aby pominąć błąd analizy kodu lub ostrzeżenie dla określonego pliku .sql
w projekcie SQL, dodaj plik StaticCodeAnalysis.SuppressMessages.xml
do projektu. W pliku określ identyfikator reguły i plik w celu pominięcia ostrzeżenia.
<?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>
Jeśli plik nie istnieje, utwórz go w katalogu głównym projektu. Jeśli plik już istnieje, pomiń dodatkowe ostrzeżenie do istniejącego pliku StaticCodeAnalysis.SuppressMessages.xml
, tworząc nowy element <SuppressedFile><SuppressedRule /></SuppressedFile>
.
Wynik analizy kodu dla tej reguły i pliku .sql
jest pomijany i nie jest już wyświetlany w danych wyjściowych kompilacji.
Powiązana zawartość
- problemy z projektowaniem języka T-SQL
- problemy z nazewnictwem języka T-SQL
- problemy z wydajnością języka T-SQL