Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Control de errores en SQL Server 2005

Cuando escribimos procedimientos almacenados, lógica de negocio que va a ejecutarse en el propio servidor de datos generalmente a demanda de las aplicaciones, el control de los posibles errores es un aspecto especialmente importante y delicado. Un fallo en un procedimiento almacenado se propagaría a todos los potenciales clientes, lo que puede significar dejar de atender a cientos o miles de usuarios.

En SQL Server el control de errores se lleva a cabo tradicionalmente mediante la consulta reiterada de la variable @@ERROR tras cada operación. Si dicha variable indica que la operación no ha tenido éxito el código puede proceder adecuadamente, por ejemplo revocando una transacción en lugar de confirmándola. En SQL Server 2005 existe una construcción de más alto nivel, similar a la de algunos lenguajes de programación, que permite controlar los errores sin tener que comprobar a cada paso la mencionada variable. Su sintaxis es la siguiente:


BEGIN TRY
  /* sentencias que deben ejecutarse */
  COMMIT TRANSACTION
END TRY
BEGIN CATCH
  /* Control del error */
END CATCH

En el bloque BEGIN CATCH/END CATCH pueden utilizarse funciones como XACT_STATE(), ERROR_NUMBER() y ERROR_STATE() para saber si había o no transacciones en curso y su estado, obtener el código y el estado de error a fin de proceder como mejor convenga.


Publicado el 10/8/2007

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web