A instrução RAISERROR no SQL Server permite gerar e exibir mensagens de erro definidas pelo usuário.
Usando a instrução RAISERROR, você pode criar mensagens de erro personalizado e exibi-las em seus aplicativos. As mensagens de erro geradas pela instrução RAISERROR usarão o mesmo formato que as mensagens geradas pelo sistema.
Você também pode definir vários parâmetros, como gravidade e estado das mensagens.
A sintaxe da declaração do Raiserror é como mostrado abaixo:
Raiserror (message_id | message_content | @local_variable
gravidade, estado
Com opção
);
Vamos quebrar a sintaxe da declaração do Raiserror:
- message_id - o message_id refere -se a uma mensagem definida pelo usuário que o procedimento sp_addmessage usa para armazenar a mensagem no sistema.Mensagens Visualização do catálogo. Este valor deve estar acima de 50.000.
- message_content - este é o conteúdo real da mensagem de erro. A mensagem pode conter até 2.047 caracteres. Se a mensagem de erro exceder esse valor, o SQL Server exibirá apenas 2.044 caracteres e depois adicionará elipsis para mostrar o truncamento de mensagens. O formato da mensagem é semelhante ao da função Printf na programação C.
- @local_variable - qualquer variável de qualquer tipo de caractere segurando uma string formatada em um estilo idêntico como o message_content.
- Gravidade - define o nível de gravidade da mensagem mostrada pela declaração do Raiserror. Este é um valor inteiro que varia entre 0 e 25, cada valor indicando um nível de alta gravidade. Lembre -se de que qualquer valor de gravidade entre 20 e 25 é tratado como fatal. Se um erro fatal for recebido, o SQL Server encerra a conexão do cliente e registra a mensagem de erro. Para especificar um nível de gravidade acima de 18, você deve ter permissões de rastreamento de alter e ser um membro do papel de sysadmin.
- Estado - Este é um valor inteiro que varia entre 0 e 255. Os estados podem ajudar a identificar a seção específica que levanta os erros.
- Com a opção - este parâmetro é usado para modificar como as funções da declaração do Raiserror. As opções aceitas incluem:
- Com log - mostra a mensagem para o usuário e registrar o erro nos logs de erro.
- Com o SetError - define automaticamente os valores de erro ERROR_NUMBER e @@.
- Com Nowait - mostra a mensagem de erro ao cliente instantaneamente.
Dica: Se nenhum valor para o parâmetro message_id for definido, a declaração do Raiserror retornará um erro com um ID de 50.000. Portanto, verifique se todos os seus message_ids estão acima desse valor.
Dica:.
Crie mensagens ad hoc com o procedimento sp_addmessage
Para adicionar manualmente uma mensagem de erro ao sistema.Visualização do catálogo de mensagens, use o procedimento sp_addmessage, como mostrado no exemplo a seguir:
EXEC SP_ADDMESSAGE
@msgnum = 50001,
@Severity = 10,
@msgText = '[Erro]… este é um erro de teste Mess'ge';
Para ver a mensagem na visão do catálogo:
Selecione * do SYS.mensagens onde message_id = 50001;
A consulta deve retornar como mostrado:
Para executar a mensagem, use a instrução RAISERROR como mostrado:
Raiserror (50001,10,1);
A consulta deve retornar:
[Erro]… esta é uma mensagem de erro de teste
Para excluir uma mensagem do Sys.Visualização do catálogo de mensagens, use o sp_dropmessage como mostrado:
EXEC SP_DROPMESSAGE @MSGNUM = 50001;
Declaração de Raaisrror no bloco Try/Catch
Podemos usar a instrução RAISERROR para apresentar um erro dentro de um bloco de tentativa/captura, como mostrado na consulta de exemplo a seguir:
Comece a tentar
Raiserror ('Erro no bloco de tentativa', 15, 1);
Fim de tentativa
Comece a pegar
Declarar @errormsg nvarchar (4000);
Declare @Severity Int;
Declarar @e_state int;
Selecione
@errormsg = error_message (),
@gravidade = error_severity (),
@e_state = error_state ();
RaSerror (@errormsg, @Severity, @E_State);
End Catch
Se executarmos a consulta, devemos ver a seguinte mensagem de erro:
MSG 50000, Nível 15, Estado 1, linha 12
Erro no bloco de tentativa
Conclusão
Neste artigo, você aprendeu a usar a instrução RAISERROR no SQL Server para gerar mensagens de erro personalizado. Isso inclui a criação de mensagens ad hoc com o procedimento SP_ADDMESSAGE e o uso da instrução RAISERROR no bloco Try/Catch. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e informações.