Información general sobre extensibilidad para reglas de análisis de código de base de datos

 

Se aplica a: SQL Server 2014, SQL Server 2016 Preview

Las ediciones de Visual Studio que contienen SQL Server Data Tools incluyen reglas de análisis de código que proporcionan información acerca del diseño, nomenclatura y advertencias de rendimiento de Transact-SQL en el código de la base de datos.Para obtener más información, consulte Análisis del código de bases de datos para mejorar la calidad del código.

Si las reglas de análisis de código integradas no abarcan un problema de Transact-SQL determinado que desee incluir, puede crear reglas de análisis de código de base de datos personalizadas.Por ejemplo, quizá le convenga crear una regla personalizada que evite el uso de la instrucción WAITFOR DELAY, tal como se muestra en Tutorial de creación de un ensamblado de regla de análisis de código estático personalizado para SQL Server.Para crear reglas de análisis de código de base de datos personalizadas, utilice las clases del espacio de nombres Microsoft.SqlServer.Dac.CodeAnalysis.

Antes de crear reglas de análisis de código personalizadas, deberá comprender la arquitectura básica de los distintos componentes de las reglas de análisis de código de base de datos.

Componentes de las reglas de análisis de código de base de datos

En el siguiente diagrama se muestra cómo interactúan los componentes de las reglas de análisis de código de base de datos:

Database Code Analysis Rules Components

Cuando se usa la característica de análisis de código de base de datos, ya sea mediante la ejecución directa de análisis de código estático (para obtener más información, consulte Cómo: analizar código de Transact-SQL para buscar defectos) o mediante la realización de una compilación, todas las reglas se cargan y utilizan según cómo se hayan configurado en el proyecto.Para obtener más información, consulte Cómo: habilitar y deshabilitar reglas específicas para el análisis de código estático de base de datos.El Administrador de extensiones también cargará los ensamblados de reglas personalizadas que haya creado y registrado.Para obtener más información, vea Cómo: instalar y administrar las extensiones de características.

Una clase de reglas de análisis de código personalizadas hereda de SqlCodeAnalysisRule.La clase de reglas personalizadas puede tener acceso a un número de objetos útiles a través de su contexto de ejecución de regla.Estos incluyen:

  • Metadatos acerca de la propia regla.

  • La TSqlModel que representa el esquema de la base de datos, incluidos todos los elementos del modelo, las relaciones entre estos y las propiedades de los elementos.

  • Para las reglas que examinan elementos específicos, se incluye en el contexto el TSqlObject que representa ese elemento del esquema en el modelo.

  • Muchos de los objetos de esquema también tienen una representación ScriptDom a la que se puede acceder a través de este contexto. Se trata de una representación basada en el AST de un elemento que puede ser útil cuando se intentan detectar posibles problemas de sintaxis, como la presencia de SelectStarExpression.

Una SqlRuleProblem la crea la regla para representar los problemas encontrados por esta.Al crearla, la TSqlObject pertinente y posiblemente un elemento de representación ScriptDom se pasan al constructor y se utilizan para determinar la ubicación del problema en los archivos de código fuente.Al final del análisis, todos estos problemas se pasan al Administrador de errores y se muestran en la lista de errores.

Vea también

Extensión de las características de base de datos