SP - Transaccion

22/06/2005 - 16:34 por Roth | Informe spam
Hola!

Tengo que armar uan tarea programada, en la que corre un SP que transfiere
varios registros de varias tablas a otras. El tema es que si falla algun
insert, quiero que corte el resto de los insert y no siga corriendo y corte
indicando el error y enviando el mail al admin.

Seria poner el SET XACT_ABORT ON , antes dle BEGIN TRANS , y luego poner
todos los inserts y delets no? , esto me asegura que si falla un insert..
por X motivo, no siga corriendo ?

ese X motivo, puede ser desde error por integridad referencial hasta error
de sintaxis ?

por lo del mail lo haría a traves del Administrador de JOBs del SQL ,
correcto?

Gracias !.-

Preguntas similare

Leer las respuestas

#6 Don Roque
23/06/2005 - 16:55 | Informe spam
dentro de los IF deberias incluir la instruccion RETURN para que se
detenga la ejecucion del Stored Procedure


if @@error <> 0
begin
rollback tran
return -1 /*o el codigo de error que vos decidas que el SP va a
devolver si fallo*/
end
Respuesta Responder a este mensaje
#7 Roth
23/06/2005 - 17:42 | Informe spam
Ah, claro, ya en el SP es con RETURN, que nabo, porque yo lo estaba probando
en ejecución normal antes de pegarlo en un SP ...

GRACIAS MIL !!!

"Maxi" wrote in message
news:ezCdTd$
Hola , pusiste el return?

if @@error <> 0
begin
rollBack Tran
return 99
end


Salu2
Maxi


"Roth" escribió en el mensaje
news:e7NPyC$
> Lo probé.. pero me salió problema lo pongo en mayusculas entremedio:
>
> Begin tran
>> insert into loquesea
>>
>> if @@error <> 0
>> begin
>> rollBack Tran
>> end
>
> -> SI HUBO ERROR SIGUE CORRIENDO
>
>> insert into loquesea
>
> -> ESTE INSERT ENTONCES CORRE SIN TRANSACCION POR LO QUE SE EJECUTA
> IGUAL
>
>> if @@error <> 0
>> begin
>> rollBack Tran
>> end
> -> Y SI EL ULTIMO INSERT TIRO ERROR , EL ROLLBACK VA A TIRAR ERROR


POR
> NO TENER TRANSACCION ACTIVA
>
>
>
>
>> Commit Tran
>
>
>
> "Maxi" wrote in message
> news:
>> Hola, esta pregunta te la contestaron creo que en el Mug de argentina
>> ;-),
> y
>> si deberias usar transacciones y por cada instruccion verificar el


valor
>> @@error por ej
>>
>> Begin tran
>> insert into loquesea
>>
>> if @@error <> 0
>> begin
>> rollBack Tran
>> end
>>
>> insert into loquesea
>>
>> if @@error <> 0
>> begin
>> rollBack Tran
>> end
>>
>> Commit Tran
>>
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Roth" escribió en el mensaje
>> news:%23y6%
>> > Hola!
>> >
>> > Tengo que armar uan tarea programada, en la que corre un SP que
> transfiere
>> > varios registros de varias tablas a otras. El tema es que si falla
>> > algun
>> > insert, quiero que corte el resto de los insert y no siga corriendo


y
>> > corte
>> > indicando el error y enviando el mail al admin.
>> >
>> > Seria poner el SET XACT_ABORT ON , antes dle BEGIN TRANS , y luego
>> > poner
>> > todos los inserts y delets no? , esto me asegura que si falla un
> insert..
>> > por X motivo, no siga corriendo ?
>> >
>> > ese X motivo, puede ser desde error por integridad referencial hasta
> error
>> > de sintaxis ?
>> >
>> > por lo del mail lo haría a traves del Administrador de JOBs del SQL ,
>> > correcto?
>> >
>> > Gracias !.-
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#8 Don Roque
23/06/2005 - 20:03 | Informe spam
:D
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida