SQL Server - Volver a ejecutar el TRY si CATCH da error

 
Vista:
sin imagen de perfil

Volver a ejecutar el TRY si CATCH da error

Publicado por Mauro Ezequiel (2 intervenciones) el 17/09/2015 16:10:34
Buenas!

Tengo el siguiente problema que no logro resolver. Tengo un Stored Procedure que ejecuta varias sentencias dentro de un try catch, todo esto dentro de un while. Lo que necesito hacer es que si el catch captura un error se vuelva a ejecutar lo que tiene el try. Pongo un ejemplo con GOTO que no funciona, pero tal ves haga mas visible lo que necesito hacer.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DECLARE @cont INT = 0
 
while(@cont < 2)
BEGIN
	BEGIN TRY
		Repetir:
 
		SENTENCIAS
 
	END TRY
	BEGIN CATCH
 
		PRINT ERROR_MESSAGE()
 
		GOTO Repetir
 
	END CATCH
	SET @cont = @cont + 1
END


Desde ya muchas gracias.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Volver a ejecutar el TRY si CATCH da error

Publicado por Mauro Ezequiel (2 intervenciones) el 17/09/2015 21:49:24
Encontre la solucion. Dejo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DECLARE @cont INT = 0
DECLARE @div INT = 0
 
while(@cont < 2)
BEGIN
	BEGIN TRY
 
		select 1/@div
 
		SET @cont = @cont + 1
	END TRY
	BEGIN CATCH
 
		set @div = @div + 1
		PRINT ERROR_MESSAGE()
 
	END CATCH
 
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar