Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Volver a ejecutar el TRY si CATCH da error

Estas en el tema de Volver a ejecutar el TRY si CATCH da error en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/09/2015, 09:24
Avatar de mau_87lp  
Fecha de Ingreso: diciembre-2009
Ubicación: La Plata,Buenos Aires.
Mensajes: 72
Antigüedad: 14 años, 11 meses
Puntos: 3
Pregunta Volver a ejecutar el TRY si CATCH da error

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.


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

Desde ya muchas gracias.

Saludos

Última edición por gnzsoloyo; 17/09/2015 a las 12:44
  #2 (permalink)  
Antiguo 17/09/2015, 11:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Volver a ejecutar el TRY si CATCH da error

Eso q quieres hacer no se puede con un try catch, porq al marcarte error te manda al catch y termina el try, q es lo q quieres hacer, quizas la solucion sea otra
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 17/09/2015, 13:12
Avatar de mau_87lp  
Fecha de Ingreso: diciembre-2009
Ubicación: La Plata,Buenos Aires.
Mensajes: 72
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Volver a ejecutar el TRY si CATCH da error

Hola. Ya tengo la solucion. Me quedo algo asi:


Código:
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
Gracias.
Saludos

Etiquetas: errores, try-catch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.