SQL Server - Control errores sql 2000

 
Vista:

Control errores sql 2000

Publicado por Miguel (10 intervenciones) el 24/11/2009 10:21:47
SELECT @SQL='DELETE FROM '+@STABLA+' WHERE RIGHT (XSECCION_ID,1) = '''+@SECCION+''''
EXEC (@SQL)
SELECT @MYERROR = @@ERROR, @MYROWCOUNT = @@ROWCOUNT
IF @MYERROR = 208 OR @MYERROR = 207
BEGIN
SELECT @WERROR = 0
SELECT @SQL='UPDATE '+@DBNAME+'.IMP.ADV_DEPURAR_TAB SET XDEPURADO=1 WHERE XTABLA_ID='''+@STABLA+''''
EXEC (@SQL)
CONTINUE
END
ELSE
IF @MYERROR<>0
BEGIN
SELECT @WERROR = -1
CONTINUE
END

IF @MYERROR = 0 AND @MYROWCOUNT = 0
BEGIN
SELECT @WERROR = 0
SELECT @SQL='UPDATE '+@DBNAME+'.IMP.ADV_DEPURAR_TAB SET XDEPURADO=1 WHERE XTABLA_ID='''+@STABLA+''''
EXEC (@SQL)
END

Este código está dentro de un cursor que obtiene el valor de @STABLA y lo que intento es que si me provoca error la instrucción DELETE me continue por el siguiente registro, pero se me corta la ejecución.
Este SP se ejecuta desde un trabajo programado.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Control errores sql 2000

Publicado por Isaias (4557 intervenciones) el 24/11/2009 20:46:09
EXEC (@String), es una forma de ejecucion antigua, para poder controlar los errores en query dinamico, lee un poco sobre SP_EXECUTESQL @MyNVarchar
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