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


Kódelemzési szabályok bővíthetőségének áttekintése

A megadott kódelemzési szabályok jelentést készítenek az adatbáziskód Transact-SQL tervezési, elnevezési és teljesítménybeli figyelmeztetéseiről. Ha a beépített kódelemzési szabályok nem tartalmazzák az automatikusan észlelni kívánt T-SQL-probléma vagy antipattern lefedettségét, létrehozhat egyéni adatbáziskód-elemzési szabályokat.

Előfordulhat például, hogy olyan egyéni szabályt szeretne létrehozni, amely elkerüli a WAITFOR DELAY utasítás használatát, ahogyan az Egyéni kódelemzési szabályok készítésecímű témakörben is látható. Egyéni adatbáziskód-elemzési szabályok létrehozásához a CodeAnalysis névterében lévő osztályokat kell használnia.

Ez az áttekintés az adatbáziskód-elemzési szabályok különböző összetevőinek alapvető architektúráját ismerteti.

Adatbáziskód-elemzési szabályok összetevői

Az alábbi ábra az adatbáziskód-elemzési szabályok összetevőinek feldolgozását mutatja be:

Képernyőkép az adatbáziskód-elemzés feldolgozási folyamatáról.

Az adatbáziskód-elemzési szabályok funkció használatakor a rendszer az összes szabályt betölti és használja a projektben való konfigurálásuknak megfelelően. További információ: Útmutató: Az adatbáziskód statikus elemzésének egyes szabályainak engedélyezése és letiltása. A Bővítménykezelő betölti a létrehozott és regisztrált egyéni szabályszerelvényeket is.

Az egyéni kódelemzési szabályosztály a SqlCodeAnalysisRuleszármaztatva van. Az egyéni szabályosztály a szabályvégrehajtási környezeten keresztül hozzáférhet a hasznos objektumokhoz. Ezek az objektumok a következők:

  • Metaadatok magáról a szabályról.
  • Az adatbázis sémáját képviselő Dac.Model.TSqlModel, beleértve az összes modellelemet, ezek és az elemek bármely tulajdonsága közötti kapcsolatokat.
  • Az adott elemeket vizsgáló szabályok esetében a modell sémaelemét képviselő Dac.Model.TSqlObject szerepel a kontextusban.
  • Számos sémaobjektum is rendelkezik ScriptDom-ábrázolással, amely ezen a környezetben érhető el. Ez egy olyan elem AST-alapú ábrázolása, amely hasznos lehet a lehetséges szintaxisproblémák, például a SelectStarExpressionjelenlétekor.

A szabály által észlelt problémák esetén létrejön egy Dac.CodeAnalysis.SqlRuleProblem objektum. A SqlRuleProblem objektum létrehozásakor a rendszer a megfelelő Dac.Model.TSqlObject és esetleg egy ScriptDom ábrázoló elemet továbbítja a konstruktornak, és ezekkel állapítja meg a probléma helyét a forráskódfájlokban. Az elemzés végén ezeket a problémákat a rendszer átadja a Hibakezelőnek, és megjelenik a hibalistában.

Egyéni szabályok beépítése SQL-projektbe

A Microsoft.Build.Sql SDK-stílusú SQL-projektekben egyéni kódelemzési szabályokat is belefoglalhat a projektbe egy olyan csomaghivatkozás hozzáadásával, amely tartalmazza a szabályokat. Az alábbi példa egy egyéni kódelemzési szabálycsomagra mutató csomaghivatkozást mutat be:

<ItemGroup>
  <PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>

Tudjon meg többet a kódelemzési szabálycsomagra való hivatkozásról egy SQL-projektben a csomaghivatkozásokban.