SQL Server RAISERROR (Português)

Resumo: neste tutorial, você irá aprender como usar o servidor SQL RAISERROR declaração para gerar mensagens de erro definidas pelo utilizador.

se desenvolver uma nova aplicação, deve usar a declaração THROW.,

SQL Server RAISEERROR declaração de visão geral

RAISERROR instrução permite-lhe criar as suas próprias mensagens de erro e retornar essas mensagens de volta para o aplicativo usando o mesmo formato como um sistema de erro ou mensagem de aviso gerado pelo SQL Server Mecanismo de Banco de dados. Além disso, a declaração RAISERROR permite definir um id de mensagem específico, nível de gravidade e estado para as mensagens de erro.,

o seguinte ilustra a sintaxe do id

afirmação:

vamos examinar a sintaxe do id

para uma melhor compreensão.

message_id

The message_idis a user-defined error message number stored in thesys.messages catalog view.

para adicionar um novo número de mensagem de erro definido pelo Utilizador, você usa o procedimento armazenado . Um número de mensagem de erro definido pelo Utilizador deve ser superior a 50.000., Por padrão, a declaração

usa a declaração message_id 50.000 para levantar um erro.,

a instrução A seguir adiciona uma mensagem de erro personalizada para o sys.messages ver:

Para verificar a inserção, use a consulta a seguir:

Code language: SQL (Structured Query Language) (sql)

Para usar esta message_id, você executa o RAISEERROR instrução da seguinte forma:

Code language: SQL (Structured Query Language) (sql)

Aqui está o resultado:

Code language: SQL (Structured Query Language) (sql)

Para remover uma mensagem de sys.messages, você pode usar o procedimento armazenado sp_dropmessage., Por exemplo, a instrução a seguir exclui a mensagem de id de 50005:

Code language: SQL (Structured Query Language) (sql)

message_text

message_text é uma mensagem definida pelo usuário com a formatação de como o printf função em C biblioteca padrão. O message_text pode ter até 2 047 caracteres, 3 últimos caracteres são reservados para elipses (…). Se o message_text contém 2048 ou mais, ele será truncado e é acolchoado com uma elipse.,

Quando indicar omessage_text, oRAISERROR a declaração usa message_id 50000 para aumentar a mensagem de erro.

O exemplo a seguir usa o RAISERROR instrução para gerar um erro com uma mensagem de texto:

Code language: SQL (Structured Query Language) (sql)

A saída será semelhante a este:

Code language: SQL (Structured Query Language) (sql)

de gravidade

O nível de gravidade é um número inteiro entre 0 e 25, com cada nível representa a gravidade do erro.

Code language: SQL (Structured Query Language) (sql)

estado

O estado é um inteiro de 0 a 255., Se você aumentar o mesmo erro definido pelo usuário em vários locais, você pode usar um número de Estado único para cada local para tornar mais fácil encontrar qual seção do código está causando os erros. Para a maioria das implementações, você pode usar 1.

COM a opção

A opção pode ser LOG NOWAIT, ou SETERROR:

  • WITH LOG logs de erro no log de erro e o log de aplicativo para a instância do SQL Server Mecanismo de Banco de dados.,
  • WITH NOWAIT envia a mensagem de erro ao cliente imediatamente.
  • WITH SETERROR define ERROR_NUMBER e @@ERROR valores message_id ou 50000, independentemente do nível de gravidade.

SQL Server RAISERROR examples

Let’s take some examples of using the RAISERROR statement to get a better understanding.,

A) Usando o SQL Server RAISERROR com o bloco CATCH TENTE exemplo

neste exemplo, usamos o RAISERROR dentro de uma TRY bloco para causar a execução saltar para o associado CATCH bloquear. Dentro do bloco CATCH, usamos o bloco RAISERROR para devolver a informação de erro que invocou o CATCH bloco.,

Aqui está o resultado:

Code language: SQL (Structured Query Language) (sql)

B) Utilizando o SQL Server instrução RAISERROR com uma dinâmica de mensagem de texto de exemplo

O exemplo a seguir mostra como usar uma variável local para fornecer a mensagem de texto para um RAISERROR declaração:

o resultado é O seguinte:

Code language: SQL (Structured Query Language) (sql)

Quando usar a instrução RAISERROR

Você usar o RAISERROR declaração nos seguintes cenários:

  • Solucionar código Transact-SQL.
  • Return messages that contain variable text.
  • Examine os valores dos dados.,
  • Cause the execution to jump from a TRY block to the associatedCATCH block.
  • Return error information from the CATCH block to the callers, either calling batch or application.

neste tutorial, irá aprender a usar o servidor SQL RAISERROR para gerar mensagens de erro definidas pelo utilizador.

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *