Cómo: Analizar el código de Transact-SQL para buscar defectos

Puede analizar el código de Transact-SQL a petición, al compilar el proyecto mediante la interfaz de usuario o al compilar el proyecto con MSBuild. Una vez analizado el código, pueden aparecer uno o más errores o advertencias si el código contiene defectos de diseño, nomenclatura o rendimiento. Puede hacer clic en estos errores o advertencias para ver el código con el que se relacionan. También puede ver más información para comprender mejor sus causas y decidir si desea suprimirlos. Para obtener más información sobre el análisis de código en Visual Studio Premium y Visual Studio Ultimate, vea Analizar el código de base de datos para mejorar la calidad del código.

Antes de analizar el código, puede configurar las reglas que se ejecutarán como parte del análisis. Para obtener más información, vea Cómo: Habilitar y deshabilitar reglas específicas para el análisis estático de código de base de datos. Puede configurar diferentes conjuntos de reglas para diferentes configuraciones de compilación. Puede hacer que los desarrolladores ejecuten un conjunto menor de reglas para detectar problemas comunes antes de proteger el código y puede ejecutar un análisis más completo cada noche.

Analizar el código en Database Edition

Para analizar el código de Transact-SQL en el proyecto de base de datos

  1. Abra la solución que contiene el proyecto de base de datos.

  2. En el menú Datos, seleccione Análisis de código estático y haga clic en Ejecutar.

    Se analiza el código del proyecto de base de datos y las advertencias y errores se muestran en el Lista de errores.

Para ver el código fuente que produjo un error o una advertencia

  1. En la Lista de errores, haga doble clic en un error o advertencia. También puede resaltar un error o advertencia y presionar ENTRAR.

    Se abre el editor de Transact-SQL y muestra el código con el que se relaciona el error o la advertencia. Si es posible, el cursor se coloca en la cláusula que produjo el error o la advertencia.

  2. Realice uno de estos pasos:

Para mostrar más información sobre un error o una advertencia

  • En la Lista de errores, realice uno de los pasos siguientes:

    • Haga clic en el error o la advertencia y presione F1.

    • Haga clic con el botón secundario del mouse en el error o la advertencia y haga clic en Ayuda para Mostrar mensaje.

      Aparece el tema de Ayuda asociado al error o la advertencia. El tema contiene información sobre la causa del problema, cómo puede corregir el código y si puede suprimir el error o la advertencia.

Analizar el código mediante MSBuild

Puede analizar el código mediante MSBuild si desea aplicar un conjunto más completo de reglas durante una ejecución nocturna. Puede configurar reglas para cada configuración de compilación y, a continuación, especificar la configuración que contiene la regla o reglas que desea aplicar.

Puede utilizar un archivo de respuesta para proporcionar argumentos de línea de comandos a MSBuild. Este archivo puede contener cualquier modificador de línea de comandos válido para , incluidos los que invalidan las propiedades de proyecto. Para obtener más información sobre los archivos de respuesta, vea Archivos de respuesta de MSBuild. Para obtener más información acerca de las opciones de la línea de comandos de MSBuild, vea Referencia de la línea de comandos de MSBuild.

Al analizar el código desde un símbolo del sistema, los resultados se escriben en un archivo XML que se denomina StaticCodeAnalysis.Results.xml. Puede encontrar este archivo en la carpeta de proyecto, en la subcarpeta SQL. Puede especificar un nombre de archivo diferente si reemplaza el valor de la propiedad de proyecto ResultsFile.

Para analizar el código de Transact-SQL del proyecto de base de datos desde un símbolo del sistema

  1. Abra una ventana Símbolo del sistema.

    Nota importanteImportante

    Para ejecutar MSBuild.exe, debe utilizar el símbolo del sistema de Visual Studio o ejecutar el archivo por lotes vsvars32.bat que se encuentra en la carpeta especificada en la variable de entorno %VS80COMNTOOLS%.

  2. Vaya al directorio del proyecto.

  3. En un símbolo del sistema, escriba una línea de comandos similar a la que se muestra en el ejemplo siguiente:

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

    Nota

    MSBuild.exe debe encontrarse en la ruta de acceso que indique la variable de entorno PATH.

  4. Revise el resultado de MSBuild.exe. Aparecerán resultados como los siguientes:

    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
    

Vea también

Tareas

Tutorial: Analizar código Transact-SQL para una base de datos existente

Conceptos

Analizar el código de base de datos para mejorar la calidad del código

Analizar la calidad del código administrado mediante el análisis de código

Otros recursos

Problemas de diseño de Transact-SQL

Problemas de nomenclatura de Transact-SQL

Problemas de rendimiento de Transact-SQL