Share via


Vue d'ensemble de l'extensibilité pour les règles d'analyse du code de base de données

 

S’applique à : SQL Server 2014, SQL Server 2016 Preview

Les éditions de Visual Studio contenant Outils de données SQL Server incluent des règles d'analyse du code permettant de générer des rapports sur les avertissements de conception, d'affectation de noms et de performances Transact-SQL dans votre code de base de données.Pour plus d'informations, consultez Analyse du code de la base de données pour améliorer la qualité du code.

Si les règles d'analyse du code intégrées ne couvrent pas un problème Transact-SQL spécifique que vous souhaitez inclure, vous pouvez créer des règles d'analyse du code de base de données personnalisées.Par exemple, vous pouvez créer une règle personnalisée pour éviter d'utiliser l'instruction WAITFOR DELAY, comme illustré dans Procédure pas à pas : création d'un assembly de règle d'analyse statique du code personnalisée pour SQL Server.Pour créer des règles d'analyse du code de base de données personnalisées, vous utilisez les classes de l'espace de noms Microsoft.SqlServer.Dac.CodeAnalysis.

Avant de créer des règles d'analyse du code personnalisées, vous devez comprendre l'architecture de base des différents composants des règles d'analyse du code de base de données.

Composants des règles d'analyse du code de base de données

Le diagramme suivant illustre l'interaction entre les composants de règles d'analyse du code de base de données :

Database Code Analysis Rules Components

Quand vous utilisez la fonctionnalité d'analyse du code de base de données, soit en exécutant l'analyse du code statique directement (pour plus d'informations, consultez Comment : analyser du code Transact-SQL afin de détecter des erreurs), soit en exécutant une génération, toutes les règles sont chargées et utilisées en fonction de la façon dont vous les avez configurées dans votre projet.Pour plus d'informations, consultez Comment : activer et désactiver des règles spécifiques pour l'analyse statique du code d'une base de données.Le Gestionnaire d'extensions charge également les éventuels assemblys de règles personnalisées que vous avez créés et enregistrés.Pour plus d'informations, consultez Comment : installer et gérer des extensions de fonctionnalités.

Une classe de règle d'analyse du code personnalisée hérite de SqlCodeAnalysisRule.La classe de règle personnalisée peut accéder à plusieurs objets utiles via son contexte d'exécution de règle,notamment :

  • Des métadonnées relatives à la règle elle-même.

  • Le TSqlModel représentant le schéma de la base de données, y compris tous les éléments de modèle, les relations entre ceux-ci et toutes les propriétés des éléments.

  • Pour les règles qui examinent des éléments spécifiques, le TSqlObject représentant cet élément de schéma dans le modèle est inclus dans le contexte.

  • De nombreux objets de schéma ont également une représentation ScriptDom accessible via ce contexte. Il s'agit d'une représentation AST d'un élément qui peut être utile quand vous tentez d'afficher les éventuels problèmes de syntaxe comme la présence de SelectStarExpression.

Un SqlRuleProblem est créé par la règle pour représenter tous les problèmes qu'elle a détectés.Lors de cette création, le TSqlObject correspondant et éventuellement un élément de représentation ScriptDom sont passés au constructeur, et ceux-ci sont utilisés pour déterminer l'emplacement du problème dans vos fichiers de code source.À la fin de l'analyse, tous ces problèmes sont transmis au gestionnaire d'erreurs et affichés dans la liste d'erreurs.

Voir aussi

Extension des fonctionnalités de base de données