Partilhar via


Analise o código T-SQL para encontrar defeitos

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azurebanco de dados SQL no Microsoft Fabric

Você pode melhorar a qualidade do código Transact-SQL em um esquema de banco de dados importando-o para um projeto de banco de dados e analisando o código em relação a um conjunto de regras. Por exemplo, você pode querer encontrar erros em um esquema que você não desenvolveu e cuja qualidade não foi verificada. Para obter mais informações, consulte a visão geral da análise de código .

Para esta avaliação inicial, você deseja encontrar todos os problemas potenciais no código do banco de dados. Você revisa os avisos e o código que causou esses avisos. Para melhorar o código T-SQL, corrija avisos, suprima potencialmente um aviso e analise iterativamente o projeto de banco de dados.

Pré-requisitos

Antes de poder analisar o código em um projeto de banco de dados, você já deve ter um projeto SQL. Para obter mais informações sobre como usar um banco de dados existente para criar um projeto, consulte Tutorial: iniciar a partir de um banco de dados existente.

Habilitar a análise de código SQL na compilação do projeto

Para habilitar a análise de código SQL no Visual Studio, clique com o botão direito do mouse no projeto em Gerenciador de Soluções e selecione Propriedades. Na guia Análise de Código da janela de propriedades, marque a caixa de seleção Habilitar Análise de Código na compilação.

Salve a janela de propriedades do projeto e retorne ao gerenciador de soluções.

Para habilitar a análise de código SQL em um projeto SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj e adicione um elemento <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ao primeiro bloco <PropertyGroup> para habilitar a análise de código.

Para habilitar a análise de código SQL na extensão Projetos do Banco de Dados SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj na visualização do Explorer ou clicando com o botão direito do mouse no projeto na visualização Projetos de Banco de Dados e selecionando Editar arquivo .sqlproj.

No editor de texto, adicione um elemento <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ao primeiro bloco <PropertyGroup> para habilitar a análise de código.

Para habilitar a análise de código SQL em um projeto SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj e adicione um elemento <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis> ao primeiro bloco <PropertyGroup> para habilitar a análise de código.

Analise o código

Para analisar o código em um projeto de banco de dados com a análise de código habilitada na compilação, clique com o botão direito do mouse no projeto em Gerenciador de Soluções e selecione Build.

A saída janela exibe os resultados do processo de compilação geral.

O código T-SQL em seu projeto de banco de dados é analisado durante a compilação. Erros e avisos da análise de código aparecem na Lista de Erros . Se a Lista de Erros não aparecer, abra o menu Exibir e selecione Lista de Erros. Você pode clicar duas vezes em um aviso para navegar até a linha de código que causou o aviso.

Para analisar o código em um projeto de banco de dados com a análise de código habilitada na compilação, clique com o botão direito do mouse no projeto em Gerenciador de Soluções e selecione Build.

A saída janela exibe os resultados do processo de compilação geral.

O código T-SQL em seu projeto de banco de dados é analisado durante a compilação. Erros e avisos da análise de código aparecem na Lista de Erros . Se a Lista de Erros não aparecer, abra o menu Exibir e selecione Lista de Erros. Você pode clicar duas vezes em um aviso para navegar até a linha de código que causou o aviso.

Para analisar o código em um projeto de banco de dados com a análise de código habilitada na compilação, clique com o botão direito do mouse no projeto na de exibição Projetos de Banco de Dados e selecione Build.

A janela de saída exibe os resultados do processo de compilação geral e quaisquer erros ou avisos da análise de código. Os arquivos especificados em cada aviso ou erro são links interativos que navegam até a linha de código que causou o aviso.

Para analisar o código em um projeto de banco de dados com a análise de código habilitada na compilação, execute o comando dotnet build a partir da linha de comando no diretório do projeto.

dotnet build MyDatabaseProject.sqlproj

A saída do comando exibe os resultados do processo geral de compilação e quaisquer erros ou avisos da análise de código.

Configurar regras de análise de código

Para desabilitar ou habilitar uma regra específica no Visual Studio, clique com o botão direito do mouse no projeto em Gerenciador de Soluções e selecione Propriedades. Na janela de propriedades, na guia Análise de Código, selecione a regra na tabela. Para alterar a gravidade de uma regra, marque a caixa Tratar Aviso como Erro para essa regra na lista.

Salve a janela de propriedades do projeto e retorne ao gerenciador de soluções.

Para desabilitar ou habilitar uma regra específica em um projeto SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj e adicione ou modifique o elemento para SqlCodeAnalysisRules no primeiro bloco <PropertyGroup> para especificar as regras a serem habilitadas ou desabilitadas. A configuração de exemplo a seguir desabilita duas regras (SR0007 e SR0006) e altera SR0008 para resultar em erro de build. As restantes regras estão ativadas por predefinição.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Para desabilitar ou habilitar uma regra específica na extensão Projetos do Banco de Dados SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj na visualização do Explorer ou clicando com o botão direito do mouse no projeto na visualização Projetos de Banco de Dados e selecionando Editar arquivo .sqlproj.

Adicione ou modifique o elemento para SqlCodeAnalysisRules no primeiro bloco <PropertyGroup> para especificar as regras a serem habilitadas ou desabilitadas. A configuração de exemplo a seguir desativa duas regras (SR0007 e SR0006) e altera a SR0008 para resultar num erro de build. As restantes regras estão ativadas por predefinição.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Para desabilitar ou habilitar uma regra específica em um projeto SQL, edite o arquivo .sqlproj diretamente. Abra o arquivo .sqlproj e adicione ou modifique o elemento para SqlCodeAnalysisRules no primeiro bloco <PropertyGroup> para especificar as regras a serem habilitadas ou desabilitadas. A configuração de exemplo a seguir desativa duas regras (SR0007 e SR0006) e altera a SR0008 para causar um erro de compilação. As restantes regras estão ativadas por predefinição.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>
    <SqlCodeAnalysisRules>-Microsoft.Rules.Data.SR0006;-Microsoft.Rules.Data.SR0007;+!Microsoft.Rules.Data.SR0008</SqlCodeAnalysisRules>
  </PropertyGroup>
...

Suprimir avisos de análise de código

Para suprimir um erro ou aviso de análise de código para um arquivo específico de .sql no Visual Studio, clique com o botão direito do mouse no aviso na Lista de Erros e selecione Suprimir Mensagem(ões) de Análise de Código Estático. O resultado da análise de código para essa regra e do arquivo .sql é suprimido e não aparece mais na Lista de Erros ou na saída da compilação.

Observação

Suprimir um aviso não corrige o problema subjacente. Suprima avisos apenas quando tiver uma razão válida para o fazer.

Para suprimir um erro de análise de código ou aviso para um arquivo .sql específico em um projeto SQL, adicione um arquivo StaticCodeAnalysis.SuppressMessages.xml ao projeto. No arquivo, especifique o ID da regra e o arquivo para o qual suprimir o aviso.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Se o arquivo não existir, crie-o na raiz do projeto. Se o arquivo já existir, suprima um aviso adicional para o arquivo StaticCodeAnalysis.SuppressMessages.xml existente criando um novo elemento <SuppressedFile><SuppressedRule /></SuppressedFile>.

O resultado da análise de código para essa regra e .sql arquivo é suprimido e não aparece mais na saída da compilação.

Para suprimir um erro de análise de código ou aviso para um arquivo .sql específico na extensão Projetos do Banco de Dados SQL, adicione um arquivo StaticCodeAnalysis.SuppressMessages.xml ao projeto. No arquivo, especifique o ID da regra e o arquivo para o qual suprimir o aviso.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Se o arquivo não existir, crie-o na raiz do projeto. Se o arquivo já existir, suprima um aviso adicional para o arquivo StaticCodeAnalysis.SuppressMessages.xml existente criando um novo elemento <SuppressedFile><SuppressedRule /></SuppressedFile>.

O resultado da análise de código para essa regra e .sql arquivo é suprimido e não aparece mais na saída da compilação.

Para suprimir um erro de análise de código ou aviso para um arquivo .sql específico em um projeto SQL, adicione um arquivo StaticCodeAnalysis.SuppressMessages.xml ao projeto. No arquivo, especifique o ID da regra e o arquivo para o qual suprimir o aviso.

<?xml version="1.0" encoding="utf-8" ?>
<StaticCodeAnalysis version="2" xmlns="urn:Microsoft.Data.Tools.Schema.StaticCodeAnalysis">
  <SuppressedFile FilePath="Views/SelectStarView.sql">
    <SuppressedRule Category="Microsoft.Rules.Data" RuleId="SR0001" />
  </SuppressedFile>
</StaticCodeAnalysis>

Se o arquivo não existir, crie-o na raiz do projeto. Se o arquivo já existir, suprima um aviso adicional para o arquivo StaticCodeAnalysis.SuppressMessages.xml existente criando um novo elemento <SuppressedFile><SuppressedRule /></SuppressedFile>.

O resultado da análise de código para essa regra e .sql arquivo é suprimido e não aparece mais na saída da compilação.