SQL Server RAISERROR (Español)

Resumen: En este tutorial, aprenderá a usar la instrucción SQL Server RAISERROR para generar mensajes de error definidos por el usuario.

si desarrolla una nueva aplicación, debe usar la instrucción THROW en su lugar.,

descripción general de la instrucción RAISEERROR de SQL Server

la instrucción RAISERROR le permite generar sus propios mensajes de error y devolver estos mensajes a la aplicación utilizando el mismo formato que un mensaje de error o advertencia del sistema generado por el motor de base de datos de SQL Server. Además, la instrucción RAISERROR le permite establecer un id de mensaje específico, un nivel de gravedad y un estado para los mensajes de error.,

lo siguiente ilustra la sintaxis de la instrucción RAISERROR:

examinemos la sintaxis de la instrucción RAISERROR para una mejor comprensión.

message_id

el message_id es un número de mensaje de error definido por el usuario almacenado en la vista de catálogo sys.messages.

para agregar un nuevo número de mensaje de error definido por el usuario, utilice el procedimiento almacenado sp_addmessage. Un número de mensaje de error definido por el Usuario debe ser mayor que 50.000., De forma predeterminada, la instrucción RAISERROR utiliza la instrucción message_id 50.000 para generar un error.,

La siguiente sentencia añade un mensaje de error personalizado para el sys.messages vista:

Para verificar la inserción, utilice la siguiente consulta:

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

Para usar este message_id, ejecutar el RAISEERROR declaración de la siguiente manera:

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

este es el resultado:

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

Para eliminar un mensaje de la etiqueta sys.messages, se utiliza el procedimiento almacenado sp_dropmessage., Por ejemplo, la siguiente instrucción elimina el ID de mensaje 50005:

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

message_text

el message_textes un mensaje definido por el usuario con formato como la función printf en la biblioteca estándar de C. El message_text puede tener hasta 2.047 caracteres, 3 últimos caracteres están reservados para puntos suspensivos (…). Si message_text contiene 2048 o más, se truncará y se rellenará con puntos suspensivos.,

cuando se especifica la instrucción message_text, la instrucción RAISERROR utiliza message_id 50000 para generar el mensaje de error.

el siguiente ejemplo utiliza la instrucción RAISERROR para generar un error con un texto de mensaje:

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

la salida se verá así:

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

severity

el nivel de gravedad es un entero entre 0 y 25, con cada nivel representando la gravedad del error.

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

state

el estado es un entero de 0 a 255., Si genera el mismo error definido por el usuario en varias ubicaciones, puede usar un número de estado único para cada ubicación para que sea más fácil encontrar qué sección del código está causando los errores. Para la mayoría de las implementaciones, puede usar 1.

CON la opción

La opción LOG, NOWAIT o SETERROR:

  • WITH LOG registra el error en el log de errores y registro de aplicación para la instancia de SQL Server Database Engine.,
  • WITH NOWAIT envía el mensaje de error al cliente inmediatamente.
  • WITH SETERROR establece el ERROR_NUMBER y @@ERROR valores a message_id o 50000, independientemente del nivel de gravedad.

ejemplos de RAISERROR de SQL Server

tomemos algunos ejemplos de uso de la instrucción RAISERROR para obtener una mejor comprensión.,

A) usando SQL Server RAISERROR con Ejemplo de bloque try CATCH

en este ejemplo, usamos el bloque RAISERROR dentro de un bloque TRY para hacer que la ejecución salte al bloque asociado CATCH. Dentro del bloque CATCH, usamos el bloque RAISERROR para devolver la información de error que invocó el bloque CATCH.,

Aquí está la salida:

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

B) usando la instrucción RAISERROR de SQL Server con un ejemplo de texto de mensaje dinámico

el siguiente ejemplo muestra cómo usar una variable local para proporcionar el texto del mensaje para una instrucción RAISERROR:

la salida es la siguiente:

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

cuándo usar la instrucción RAISERROR

se utiliza la instrucción RAISERROR en los siguientes escenarios:

  • solucionar problemas de código Transact-SQL.
  • devuelve mensajes que contienen texto variable.
  • Examine los valores de los datos.,
  • Hacer que la ejecución salte de un bloque TRY al bloque asociado CATCH.
  • devuelve información de error del bloque CATCH a los llamantes, ya sea llamando a lote o aplicación.

en este tutorial, aprenderá a usar la instrucción SQL Server RAISERROR para generar mensajes de error definidos por el usuario.

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *