Tente pegar blocos no SQL Server

Tente pegar blocos no SQL Server
Não importa o quão perfeito seu código tente ser, sempre há uma chance de erros. É, portanto, melhor implementar medidas de manipulação de erros para capturar e lidar com erros antes que eles quebrem a funcionalidade de seus aplicativos.

Neste guia, você aprenderá como implementar o tratamento de erros no SQL Server usando os blocos de tentativa e captura.

Se você deseja aprender a gerar mensagens de erro definidas pelo usuário, verifique nosso tutorial no tutorial do SQL Server Raiserror.

Introdução

Os blocos de tentativa e captura no servidor SQL permitem prever e graciosamente lidar com erros que podem ocorrer nas consultas SQL.

Primeiro, inclua as consultas SQL que podem causar erros dentro de um bloco de tentativa. Você pode então adicionar um bloco de captura assim que uma exceção for levantada.

A sintaxe para um bloco de tentativa é como mostrado:

Comece a tentar
-- Tente executar essas declarações
fim de tentativa;

Após o bloco de tentativa, você pode definir um bloco de captura que segue uma sintaxe semelhante como mostrado:

Comece a pegar
-- Catch declarações
End Catch

Primeiro, o servidor SQL tentará executar o código dentro do bloco de tentativa. Se não ocorrer erro/exceção, ele pula o bloco de captura e prossegue com a execução.

No entanto, se ocorrer um erro dentro do bloco de tentativa, a execução salta dentro da captura e executa o código dentro desse bloco.

A sintaxe para um bloco de tentativa/captura completo é como mostrado:

Comece a tentar
-- Tente me correr
final
Comece a pegar
-- Corra Meiferrorintry
EndCatch;

Você pode implementar medidas para lidar com o erro elevado dentro do bloco de captura, como exibir mensagens usando o Raiserror e as instruções de impressão. Lembre -se de que a mensagem de erro dentro do bloco de captura não é devolvida ao aplicativo, a menos que use mecanismos, como uma instrução SELECT.

Você pode usar funções especiais para obter informações detalhadas sobre o erro:

  1. Error_number () - retorna uma mensagem interna para o erro.
  2. Error_severity () - mostra o nível de gravidade do erro. Um valor entre 0 e 25 com maior gravidade indica um alto nível de gravidade. Observe um valor de gravidade de 20 - 25 é fatal.
  3. Error_state - estado da mensagem de erro. Um valor entre 0 - 255.
  4. Error_message - uma mensagem descritiva do erro que ocorreu.
  5. Error_procedure () - mostra o nome da função, gatilho ou procedimento armazenado onde o erro foi levantado.

Certifique -se de usar as funções anteriores dentro de um bloco de captura; Caso contrário, eles retornarão um valor nulo.

SQL Server Try/Catch Exemplos

Vamos usar uma divisão por erro zero para ilustrar como usar o bloco de tentativa/captura. Comece criando um procedimento, conforme mostrado nas consultas a seguir:

-- Obtenha informações de erro
CreateProcedureGet_errorinfo
como
selecterror_number () aserrorNumber,
Error_severity () Asseveridade,
Error_state () aserrorstate,
Error_procedure () aserrorprocedure,
Error_message () aserrRormessage,
Error_line () aserrorline
começo
-- DividebyZeroError
selecione 1/0;
final
Comece a pegar
-- Execute ProcedureToGETERRORINFO
Execget_errorinfo;
final de captura;

No exemplo acima, criamos um procedimento armazenado para recuperar informações sobre um erro. Então, levantamos um erro ao mergulhar por zero.

Se executarmos a consulta acima, devemos obter uma saída como:

O que acontece se não houver erro no bloco de captura como mostrado:

começo
-- Sem erro
select100/5AsResult;
final
Comece a pegar
-- Execute ProcedureToGETERRORINFO
Execget_errorinfo;
EndCatch;

Como não há erro no bloco de tentativa, o servidor SQL pula os blocos de captura e retorna o resultado. Um exemplo de resultado é como mostrado:

Conclusão

Este guia abordou a implementação e o uso do manuseio de erros no servidor SQL usando os blocos de tentativa/captura. Além disso, funções especiais foram explicadas e fornecidas para recuperar informações detalhadas sobre o erro. Esperamos que você tenha achado este artigo útil. Confira mais artigos de dica do Linux para obter dicas e informações sobre servidores SQL.