Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A saída de compilação do projeto SQL fornece comentários sobre a construção do modelo de banco de dados e a validação do T-SQL. A saída da linha de comando padrão mostra apenas erros e algumas informações de status. Neste artigo, discutimos como habilitar um log mais detalhado para ajudar a solucionar problemas de compilação e erros comuns encontrados com projetos SQL.
Ativar registo verboso
Para solucionar problemas de compilação para projetos SQL, você pode usar opções de linha de comando para gerar mais logs. Mais registro pode ajudar não apenas a identificar a causa dos erros, mas também a degradação na velocidade de construção. As duas opções principais são:
Registador binário: Esta opção gera um ficheiro de registo binário (
msbuild.binlog) que pode ser visualizado utilizando o MSBuild Log Viewer. Este visualizador é útil para diagnosticar problemas de dependência e otimizar o processo de compilação. O comando para gerar esse log é:dotnet build -blRegistrador de arquivos: essa opção gera um arquivo de log de texto que contém o log mais detalhado da compilação. O comando para gerar esse log é:
dotnet build -flp:v=diag
Para recapitular, o comando combinado para gerar ambos os logs é:
dotnet build -bl -flp:v=diag
O conjunto completo de switches pode ser encontrado no MSBuild Command-Line Reference.
Problemas comuns
Erros de compilação
Quando o erro de compilação indica sintaxe inválida, a saída também especifica qual arquivo contém o código errado. Se você estiver usando a sintaxe que foi adicionada recentemente, talvez seja necessário atualizar a versão do SDK do projeto.
Os erros de compilação de um projeto de banco de dados devem ter SQLxxxxx código de erro, onde xxxxx é um número de cinco dígitos. Alguns problemas que causam o erro para uma referência não resolvida (SQL71501/SQL71502) são:
- Nomes de objetos ambíguos. Recomendações:
- Usar nomes totalmente resolvidos (
[schema].[table].[column]) - Renomeie objetos conforme necessário
- Usar nomes totalmente resolvidos (
- Objetos do sistema. Recomendação:
- Adicionar referência ao mestre ou msdb via referência de pacote ou referência de banco de dados
- Referências externas. Recomendação:
- Verifique se as variáveis SQLCMD estão definidas corretamente para a referência de banco de dados ou referência de pacote
Outras falhas
Para um erro que ocorre durante a restauração, primeiro execute uma compilação limpa depois de excluir as /bin pastas e /obj no projeto.
Se o erro incluir SDK 'Microsoft.Build.Sql' specified could not be found, comece verificando se os feeds de pacote NuGet são válidos. O comando base para visualizar feeds atuais é:
dotnet nuget list source
O feed público do NuGet é:
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Se o seu ambiente exigir feeds privados, certifique-se de que eles sejam válidos e acessíveis. Poderá ser-lhe pedido que se autentique com feeds de pacotes. A ativação da autenticação durante a compilação do projeto pode ser feita com:
dotnet build --interactive
Para MSBuild, o comando equivalente é:
msbuild /p:nugetInteractive=true
Para outros códigos de erro não SQL, consulte os seguintes recursos:
- Erros do MSBuild: Referência do MSBuild
- Erros NETSDK: Lista de erros do SDK do .NET
- Erros NuGet: Referência de erros e avisos do NuGet