¿Cómo se utiliza TRY….CATCH para corregir errores del servidor SQL?

¿Cómo se utiliza TRY….CATCH para corregir errores del servidor SQL?

VALORACIÓN DEL ARTÍCULO:
5/5


La sentencia TRY….CATCH de Transact-SQL detecta y gestiona las condiciones de error en las aplicaciones de bases de datos. Esta declaración es la piedra angular de la gestión de errores de SQL Server y es una parte importante del desarrollo de aplicaciones de bases de datos robustas. TRY….CATCH se aplica a SQL Server a partir de 2008, Azure SQL Database, Azure SQL Data Warehouse y Parallel Data Warehouse.

Presentamos TRY…CATCH

TRY….CATCH funciona permitiéndole especificar dos sentencias Transact-SQL: una que desea «probar» y otra que puede utilizar para «detectar» cualquier error que pueda surgir. Cuando SQL Server encuentra una instrucción TRY….CATCH, ejecuta inmediatamente la instrucción incluida en la cláusula TRY. Si la sentencia TRY se ejecuta correctamente, SQL Server sigue adelante. Sin embargo, si la sentencia TRY genera un error, SQL Server ejecuta la sentencia CATCH para manejar el error de forma sencilla.

La sintaxis básica toma esta forma:

INICIO DE PRUEBA 
{ sql_statement | bloque de instrucciones }
FINALIZAR PRUEBA
COMENZAR CAPTURA
[ { sql_statement | statement_block } ]
END CATCH
[ ; ]

Ejemplo de TRY...CATCH

Es fácil entender el uso de esta declaración a través de un ejemplo. Imagine que usted es el administrador de una base de datos de recursos humanos que contiene una tabla denominada "Empleados", que contiene información sobre cada uno de los empleados de su organización. Esa tabla utiliza un número entero de identificación de empleado como clave primaria. Puede intentar utilizar la siguiente declaración para insertar un nuevo empleado en su base de datos:

INSERT INTO employees(id, first_name, last_name, extension)
.VALORES(12497, 'Mike', 'Chapple', 4201)

En circunstancias normales, esta expresión añadiría una línea a la tabla Empleados. Sin embargo, si un empleado con ID 12497 ya existe en la base de datos, la inserción de la fila violaría la restricción de la clave primaria y daría como resultado el siguiente error:

Msg 2627, Nivel 14, Estado 1, Línea 1
.Violación de la restricción PRIMARY KEY 'PK_employee_id'. No se puede insertar una clave duplicada en el objeto'dbo.employees'.
.La declaración ha sido cancelada.

Aunque este error le proporciona la información que necesita para solucionar el problema, hay dos problemas con él. Primero, el mensaje es críptico. Incluye códigos de error, números de línea y otra información incomprensible para el usuario medio. En segundo lugar, y lo que es más importante, hace que la sentencia se interrumpa y podría causar un fallo de la aplicación.
La alternativa es envolver la declaración en una declaración TRY....CATCH, como se muestra aquí:

INICIO DE PRUEBA 
INSERTAR EN empleados ( id, nombre, apellido, extensión)
.VALORES(12497, 'Mike', 'Chapple', 4201)
FINALIZAR PRUEBA
COMENZAR CAPTURA
PRINT 'ERROR: ' + ERROR_MESSAGE( );
EXEC msdb.dbo.sp_send_dbmail
@nombre_del_perfil =
'Correo del empleado@recipientes = @'hr@foo.com',
@body = @body = 'Se ha producido un error al crear un nuevo registro de empleado',
>.Asunto = @'Error de duplicación de ID de empleado' ;
FIN DE LA CAPTURA

En este ejemplo, cualquier error que se produzca se informa tanto al usuario que ejecuta el comando como a la dirección de correo electrónico de hr@foo.com El error que se muestra al usuario es:

Error: Violación de la restricción PRIMARY KEY 'PK_employee_id'.
No se puede insertar una clave duplicada en el objeto'dbo.employees'.
.Correo en cola.

La ejecución de la aplicación continúa normalmente, permitiendo al programador manejar el error. El uso de la sentencia TRY....CATCH es una forma elegante de detectar y manejar proactivamente los errores que se producen en las aplicaciones de bases de datos de SQL Server.

Más información

Si desea obtener más información sobre el lenguaje de consulta estructurado, consulte Introducción a SQL.

TAMBIÉN TE INTERESA

Razones para tener una web, te las explicamos

Razones para tener una página web, te las explicamos

O estás en internet o no estás. Así de fácil se puede resumir la necesidad de tener una página a nivel particular o en un negocio. Desde el punto de vista individual, es suficiente con tener perfiles activos en redes sociales, sin embargo en el caso de una empresa, la que sea, es indispensable contar

materiales-fabricación-aditiva

Más allá de las impresoras 3D: la fabricación aditiva

El elemento clave de la fabricación aditiva siempre ha sido la impresora 3D; la industria se ha construido sobre una base de diferentes tecnologías de impresión, cada una con sus propios puntos fuertes y débiles, capacidades y limitaciones, y aplicaciones más compatibles. En el último informe de IDTechEx ‘3D Printing and Additive Manufacturing 2023-2033: Technology

OPPO-Snapdragon-8-Gen-2

El chip Snapdragon 8 Gen 2 se estrenará en el próximo Find X de OPPO

OPPO ha participado en la Snapdragon Summit 2022 para presentar su colaboración con Qualcomm Technologies en materia en la tecnología Ray Tracing para dispositivos móviles. Las dos empresas, que llevan trabajando conjuntamente desde la primera fase de desarrollo del procesador de nueva generación, harán posible que los usuarios disfruten de la tecnología una ray tracing basada

e-bike-Bike-Ocasion

Black Friday: ¿buen momento para hacernos con una e-bike?

Sin duda, el Black Friday es una oportunidad para comprar muchos productos de tecnología entre los que cabría pensar en una e-bike. Este tipo de bicicletas tienen mucho componente tecnológico y han subido en ventas como la espuma desde principios de la pandemia, allá por marzo de 2020.   En este post nos sumergiremos como

reloj Haylou GST Lite

Haylou GST Lite, un reloj inteligente con un precio y rendimiento imbatibles

De todos los modelos de relojes inteligentes, encontramos uno, el Haylou GST Lite, que sorprende por su alto rendimiento, bajo precio y las muchas funciones que incorpora para nuestro día a día. Comparado con otros dispositivos similares, parece difícil encontrar uno reloj como este desde el punto de vista de su rendimiento y el precio.

problemas-de-conexion-reuniones-virtuales

Los problemas más habituales de las reuniones virtuales

Es un hecho que una de las consecuencias más palpables tras la pandemia en entornos laborales ha sido un aumento de las reuniones virtuales por parte de miembros de un equipo de trabajo. Inicialmente para muchos, este paso hacia la pantalla supuso muchos problemas en cuanto a experiencia o la adopción de tecnologías en su