Inicio > Transact-SQL > Manejo de excepciones en SQL Server (TRY/CATCH)

Manejo de excepciones en SQL Server (TRY/CATCH)


En esta ocasión les hablare acerca del manejo de excepciones en transacciones de SQL Server

Una mejora importante que tenemos en SQL Server es el manejo de errores que  ahora es posible en T-SQL con los bloques TRY/CATCH sin olvidar la sintaxis que utilizamos para las transacciones.

Sintaxis :

BEGIN TRY
BEGIN TRANSACTION
— Bloque de código SQL a proteger
COMMIT TRANSACTION
END TRY
BEGIN CATCH
— Código para mostrar el mensaje de la  excepción
ROLLBACK TRANSACTION
END CATCH

Si ocurre un error dentro de la transacción en un bloque TRY inmediatamente se dirige al bloque CATCH.
Para poder regresar la información del error tenemos nuevas funciones en SQL Server, veamos cuales son:

ERROR_NUMBER()  : Devuelve el número de error.
ERROR_MESSAGE() : Devuelve el texto completo del mensaje de error. El texto incluye los valores suministrados para los parámetros sustituibles, como longitudes, nombres de objeto u horas.
ERROR SEVERITY()  : Devuelve la gravedad del error.
ERROR_STATE()  : Devuelve el número de estado de error.
ERROR_LINE()  : Devuelve el número de línea donde se produjo el error.
ERROR_PROCEDURE() : Devuelve el nombre del procedimiento donde se produjo el error.

Pasemos a crear un ejemplo bastante sencillo en donde vamos a provocar una excepción en una división entre cero para observar el funcionamiento de estas funciones.

BEGIN TRY
    DECLARE @TOTAL INT;
    SET @TOTAL = 20;
    SELECT @TOTAL/0
END TRY
BEGIN CATCH
    SELECT
    ERROR_NUMBER() AS Numero_de_Error,
    ERROR_SEVERITY() AS Gravedad_del_Error,
    ERROR_STATE() AS Estado_del_Error,
    ERROR_PROCEDURE() AS Procedimiento_del_Error,
    ERROR_LINE() AS Linea_de_Error,
    ERROR_MESSAGE() AS Mensaje_de_Error;
END CATCH

Categorías:Transact-SQL
  1. ventas
    22 julio 2012 a las 10:54 pm

    Bueno

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: