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
Ouvrez la solution qui contient votre projet de base de données.
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
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.
Effectuez l'une des étapes suivantes :
Résolvez immédiatement le problème.
Créez un élément de travail afin que vous ou un autre membre de l'équipe puisse résoudre le problème ultérieurement.
Pour plus d'informations, consultez Comment : créer un élément de travail à partir d'une erreur de code Transact-SQL.
Supprimez l'erreur ou l'avertissement s'il peut être ignoré sans risque.
Si vous supprimez une erreur ou un avertissement, il n'apparaîtra pas lorsque vous analysez à nouveau votre code. Pour plus d'informations, consultez Comment : supprimer les avertissements relatifs à l'analyse du code de base de données.
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
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%.
Naviguez jusqu'au répertoire de votre projet.
À 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.
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