Общие сведения о расширяемости для правил анализа кода базы данных

 

Применимо к: SQL Server 2014, SQL Server 2016 Preview

Выпуски Visual Studio, содержащие SQL Server Data Tools, включают правила анализа кода для отчетов о предупреждениях конструктора, именования и производительности Transact-SQL в коде базы данных.Дополнительные сведения см. в разделе Анализ кода базы данных для повышения качества кода.

Если встроенные правила анализа кода не охватывают конкретную проблему Transact-SQL, которую вы хотите включить, можно создать настраиваемые правила анализа кода базы данных.Например, может потребоваться создать настраиваемое правило, позволяющее избежать использования оператора WAITFOR DELAY, как показано в статье Пошаговое руководство по созданию сборки настраиваемого правила анализа статического кода для SQL Server.Для создания настраиваемых правил анализа кода базы данных используются классы в пространстве имен Microsoft.SqlServer.Dac.CodeAnalysis.

Прежде чем создавать настраиваемые правила анализа кода, необходимо понять базовую архитектуру различных компонентов правил анализа кода базы данных.

Компоненты правил анализа кода базы данных

На следующей схеме показано, как взаимодействуют компоненты правил анализа кода базы данных.

Database Code Analysis Rules Components

При использовании компонента правил анализа кода базы данных либо путем непосредственного выполнения статического анализа кода (дополнительные сведения см. в разделе Практическое руководство. Анализ кода Transact-SQL для поиска дефектов), либо путем выполнения сборки все правила загружаются и используются в соответствии с их настройкой в вашем проекте.Дополнительные сведения см. в разделе Практическое руководство. Включение и отключение определенных правил для статического анализа кода базы данных.Диспетчер расширений также будет загружать все сборки настраиваемых правил, которые вы создали и зарегистрировали.Дополнительные сведения см. в разделе Практическое руководство. Установка расширений компонентов и управление ими.

Класс настраиваемых правил анализа кода наследуется от SqlCodeAnalysisRule.Класс настраиваемых правил может обращаться к ряду полезных объектов через свой контекст выполнения правил.К ним относятся следующие объекты.

  • Метаданные о самом правиле.

  • Модель TSqlModel, представляющая схему базы данных, включая все элементы модели, связи между ними и все свойства элементов.

  • Для правил, которые анализируют конкретные элементы, объект TSqlObject, представляющий этот элемент схемы в модели, включается в контекст.

  • Многие объекты схемы также имеют представление ScriptDom, доступ к которому можно получить через этот контекст. Это основанное на AST представление элемента, который может быть полезен при просмотре потенциальных проблем синтаксиса, таких как наличие SelectStarExpression.

Объект SqlRuleProblem создается правилом для представления всех обнаруженных им проблем.При его создании соответствующий объект TSqlObject и, возможно, элемент представления ScriptDom передаются в конструктор, а затем используются для определения источника проблемы в файлах исходного кода.В конце анализа все эти проблемы передаются в диспетчер ошибок и отображаются в списке ошибок.

См. также

Расширение функций баз данных