Anuncios

martes, 29 de septiembre de 2009

Manejo de errores en SQL SERVER


SQL Server 2005 o superior incorpora el manejo de excepciones mediante un try y un catch en su lenguaje T-SQL.

La sintaxis es la siguiente:

BEGIN TRY

/*El código de lo que piensas ejecutar*/

END TRY

BEGIN CATCH

/*El mensaje de error en caso de que falle el try*/

END CATCH

Es muy simple, para los que ya programaron en otros lenguajes, no necesitan más explicaciones. Para los que nunca usaron un try, catch, la idea es la siguiente:

TRY permite tratar de ejecutar el código que programamos.

CATCH permite manejar y mandar mensajes de error generados durante el try.

Ejemplo de manejo de errores usando TRY, CATCH EN T-SQL

Vamos a hacer que este procedimiento almacenado de factorial devuelva el siguiente mensaje si existe un overflow (que el número exceda los rangos permitidos):

create procedure factorial

@fact bigint

as

BEGIN TRY

declare @res bigint

set @res =1;

while(@fact != 1)

begin

set @res = @res*@fact;

set @fact = @fact - 1;

end

print (@res)

END TRY

BEGIN CATCH

print 'El Numero no puede ser superior a 20'

END CATCH

Lo que hace este ejemplo de procedimiento almacenado es devolver el factorial de un número. Si por ejemplo le damos de parámetro de entrada 3 devolverá de resultado de factorial 6.

Este procedimiento almacenado devuelve un mensaje de error si el parámetro de entrada es superior a 20.

Si quieren más ejemplos o tienen dudas, pueden escribir a este blog.


REFERENCIAS:

http://msdn.microsoft.com/es-bo/library/ms175976(SQL.90).aspx


People who read this post also read :