Partager via


Comment : analyser du code Transact-SQL afin de détecter des erreurs

Vous pouvez analyser votre code Transact-SQL à la demande, lorsque vous générez votre projet à l'aide de l'interface utilisateur, ou lorsque vous générez votre projet à l'aide de MSBuild. Après avoir analysé votre code, une ou plusieurs erreurs ou avertissements apparaîtront si le code contient des erreurs de conception, de nom ou de performance. Vous pouvez cliquer sur ces erreurs ou avertissements pour consulter le code auquel elles sont liées. Vous pouvez également consulter plus d'informations pour mieux comprendre leurs causes et si vous pouvez les supprimer. Pour plus d'informations sur l'analyse du code dans Visual Studio Premium et Visual Studio Ultimate, consultez Analyse du code de base de données pour en améliorer la qualité.

Avant d'analyser votre code, vous pouvez configurer les règles qui s'exécuteront dans le cadre de l'analyse. 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. Vous pouvez configurer des jeux différents de règles pour des configurations de build différentes. Vos développeurs peuvent ainsi exécuter un ensemble plus petit de règles afin de vérifier les problèmes courants avant d'archiver leur code, et vous pouvez exécuter une analyse plus complète la nuit.

Analyse du code dans Database Edition

Pour analyser le code Transact-SQL dans votre projet de base de données

  1. Ouvrez la solution qui contient votre projet de base de données.

  2. Dans le menu Données, pointez sur Analyse statique du code, puis cliquez sur Exécuter.

    Le code de votre projet de base de données est analysé et tout avertissement et erreur s'affiche dans la Liste d'erreurs .

Pour consulter le code source qui a provoqué une erreur ou un avertissement

  1. Dans la Liste d'erreurs, double-cliquez sur une erreur ou un avertissement. Vous pouvez également mettre en surbrillance une erreur ou un avertissement et appuyer sur ENTRÉE.

    L'éditeur Transact-SQL ouvre et affiche le code auquel l'erreur ou l'avertissement est lié. Lorsque cela est possible, le curseur est positionné sur la clause qui a provoqué l'erreur ou l'avertissement.

  2. Effectuez l'une des étapes suivantes :

Pour afficher plus d'informations sur une erreur ou un avertissement

  • Dans la Liste d'erreurs, effectuez l'une des étapes suivantes :

    • Cliquez sur l'erreur ou l'avertissement et appuyez sur la touche F1.

    • Cliquez avec le bouton droit sur l'erreur ou l'avertissement, puis cliquez sur Afficher l'aide sur l'erreur.

      La rubrique d'aide associée à l'erreur ou l'avertissement apparaît. La rubrique contient des informations sur la cause du problème, la manière de corriger votre code, et si vous pouvez supprimer l'erreur ou l'avertissement.

Analyse du code à l'aide de MSBuild

Vous pouvez décider d'analyser votre code à l'aide de MSBuild si vous souhaitez appliquer un jeu plus complet de règles lors d'une exécution nocturne. Vous pouvez configurer des règles pour chaque configuration de build, puis spécifier la configuration qui contient la ou les règles que vous souhaitez appliquer.

Vous pouvez utiliser un fichier réponse pour fournir des arguments de ligne de commande à MSBuild. Ce fichier peut contenir n'importe quel commutateur de ligne de commande MSBuild valide, y compris ceux qui substituent des propriétés de projet. Pour plus d'informations sur les fichiers réponse, consultez Fichiers réponse MSBuild. Pour plus d'informations sur les options de ligne de commande pour MSBuild, consultez Référence de la ligne de commande MSBuild.

Lorsque vous analysez votre code à partir d'une invite de commandes, les résultats sont écrits dans un fichier XML nommé StaticCodeAnalysis.Results.xml. Vous pouvez rechercher ce fichier dans votre dossier de projet dans le sous-dossier SQL. Vous pouvez spécifier un nom de fichier différent en substituant la valeur de la propriété de projet ResultsFile.

Pour analyser le code Transact-SQL dans votre projet de base de données à partir d'une invite de commandes

  1. Ouvrez une fenêtre Invite de commandes.

    Important

    Pour exécuter MSBuild.exe, vous devez soit utiliser l'invite de commandes Visual Studio, soit exécuter le fichier de commandes vsvars32.bat situé dans le dossier spécifié par la variable d'environnement %VS80COMNTOOLS%.

  2. Naviguez jusqu'au répertoire de votre projet.

  3. À une invite de commandes, tapez une ligne de commande qui ressemble à l'exemple suivant :

    MSBuild /t:StaticCodeAnalysis /p:Configuration=Release DatabaseProject.dbproj
    

    Notes

    MSBuild.exe doit se trouver dans le chemin d'accès spécifié par votre variable d'environnement PATH.

  4. Examinez la sortie de MSBuild.exe. Une sortie semblable à la suivante s'affiche :

    Microsoft (R) Build Engine Version 4.0.30115.0
    [Microsoft .NET Framework, Version 4.0.30115.0]
    Copyright (C) Microsoft Corporation 2007. All rights reserved.
    
    Build started 9/11/2008 3:38:29 PM.
    Project " C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" on node 0 (StaticCodeAnalysis target(s)).
      Creating a model to represent the project...
      Loading project files...
      Building the project model and resolving object interdependencies...
      Validating the project model...
    1 problem has been detected
    C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\SCHEMA OBJECTS\SCHEMAS\DBO\PROGRAMMABILITY\STORED PROCEDURES\sp_ProcedureName.proc.SQL(1,24): StaticCodeAnalysis warning : SR0014 : Microsoft.Rules.Data : Data loss might occur when casting from ASCII String(1) to NChar(1). [C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj]
      One problem has been detected.
      The results are saved in C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\sql\release\DatabaseProject.StaticCodeAnalysis.Results.xml.
    Done Building Project " C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (StaticCodeAnalysis target(s)) -- FAILED.
    
    
    Build succeeded.
    
    " C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (StaticCodeAnalysis target) (1) ->
    (DspStaticCodeAnalysis target) ->
      C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\SCHEMA OBJECTS\SCHEMAS\DBO\PROGRAMMABILITY\STORED PROCEDURES\sp_ProcedureName.PROC.SQL(1,24): StaticCodeAnalysis warning : SR0014 : Microsoft.Rules.Data : Data loss might occur when casting from ASCII String(1) to NChar(1). [C:\Users\UserName\Documents\Visual Studio 2010\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj]
    
        1 Warning(s)
        0 Error(s)
    
    Time Elapsed 00:00:07.07
    

Voir aussi

Tâches

Procédure pas à pas : analyse du code Transact-SQL d'une base de données existante

Concepts

Analyse du code de base de données pour en améliorer la qualité

Analyse de la qualité d'un code managé à l'aide de l'analyse du code

Autres ressources

Problèmes relatifs à la conception Transact-SQL

Problèmes relatifs à l'affectation de noms Transact-SQL

Problèmes de performances Transact-SQL