Como: Analisar o código Transact-SQL para localizar defeitos

Você pode analisar seu Transact-SQL código sob demanda, quando você compila seu projeto usando a interface do usuário, ou quando você compila seu projeto usando MSBuild. Depois que o seu código for analisado, um ou mais erros ou avisos aparecerá se o código pode conter o design, nomenclatura, desempenho ou defeitos. Você pode clicar esses erros ou avisos para exibir o código para que eles se relacionam. Você também pode exibir mais informações para entender melhor suas causas e talvez queira suprimi-las. Para obter mais informações sobre análise de código em Visual Studio Premium e Visual Studio Ultimate, consulte Analisando o código do banco de dados para melhorar a qualidade do código.

Antes de analisar o seu código, você talvez queira configurar as regras que serão executado como parte da análise. Para obter mais informações, consulte Como: Habilitar e desabilitar regras específicas para análise estática de código do banco de dados. Você pode configurar diferentes conjuntos de regras para configurações diferentes de compilação. Você poderia ter seus desenvolvedores executados um conjunto menor de regras para verificar problemas comuns antes que verificam seu código e, em seguida, você pode executar uma análise mais abrangente no período noturno.

Análise de código no Database Edition

Analisar o código Transact-SQL em seu projeto de banco de dados

  1. Abra a solução que contém o seu projeto de banco de dados.

  2. Sobre o dados , aponte para Análise estática de códigoe clique em Executar.

    O código em seu projeto de banco de dados é analisado e quaisquer erros e avisos são exibidos o Error List.

Para exibir o código-fonte que causou um erro ou aviso

  1. No Error List, clique duas vezes em um erro ou aviso. Você também pode realçar um erro ou aviso e pressione ENTER.

    O Transact-SQL editor abre e exibe o código para o qual o erro ou aviso se relaciona. Quando possível, o cursor está posicionado na cláusula que causou o erro ou aviso.

  2. Execute uma das seguintes etapas:

Para exibir mais informações sobre um erro ou aviso

  • No Error List, execute uma das seguintes etapas:

    • Clique no erro ou aviso e pressione F1.

    • Clique com o botão direito do erro ou aviso e, em seguida, clique em Mostrar Ajuda de erro.

      O tópico da Ajuda que está associado com o erro ou aviso é exibida. O tópico contém informações sobre a causa do problema, como pode corrigir seu código e se pode ser que você deseja suprimir o erro ou aviso.

A análise de código usando MSBuild

Você pode optar por analisar seu código usando MSBuild se você deseja aplicar um conjunto mais abrangente de regras durante uma execução noturna. Você pode configurar regras para cada configuração de compilação e, em seguida, especifique a configuração que contém a regra ou regras que você deseja aplicar.

Você pode usar um arquivo de resposta para fornecer os argumentos de linha de comando para MSBuild. Esse arquivo pode conter quaisquer opções de linha de comando são válidas para MSBuild, inclusive aquelas que substituir propriedades do projeto. Para obter mais informações sobre arquivos de resposta, consulte Arquivos de resposta do MSBuild. Para obter mais informações sobre as opções de linha de comando para MSBuild, consulte Referência de linha de comando do MSBuild.

Ao analisar seu código em um prompt de comando, os resultados são gravados em um arquivo XML chamado StaticCodeAnalysis.Results.xml. Você pode encontrar este arquivo na pasta do projeto na subpasta SQL. Você pode especificar um nome de arquivo diferente, substituindo o valor da propriedade de projeto ResultsFile.

Analisar o código Transact-SQL em seu projeto de banco de dados a partir de um prompt de comando

  1. Abrir um o Prompt de comando janela.

    Observação importanteImportante

    Para executar MSBuild. exe, você deve usar o Visual Studio o Prompt de comando, ou você deve executar o arquivo em lotes de vsvars32.bat na pasta em que a variável de ambiente % VS80COMNTOOLS % especifica.

  2. Navegue até o diretório do projeto.

  3. Em um prompt de comando, digite uma linha de comando semelhante ao seguinte exemplo:

    MSBuild /t:StaticCodeAnalysis /p:Configuration=Release DatabaseProject.dbproj
    
    ObservaçãoObservação

    MSBuild. exe deve estar no caminho que especifica a sua variável de ambiente PATH.

  4. Examine a saída do MSBuild. exe. A saída, como a seguir aparecerá:

    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
    

Consulte também

Tarefas

Demonstra Passo a passo: Analisar o código do Transact-SQL para um banco de dados existente

Conceitos

Analisando o código do banco de dados para melhorar a qualidade do código

Analisando qualidade de código gerenciado usando a análise de código

Outros recursos

Questões de Design do Transact-SQL

Problemas de nomeação do Transact-SQL

Problemas de desempenho do Transact-SQL