Volver atrás un transacción ante un error

09/02/2006 - 17:48 por Mennegguzzi | Informe spam
Hola a todos, una consulta

hay alguna forma de establecer que ante un error en alguna de varias
transacciones se vuelva atrás hasta antes de la primera ?

ejemplo:

tengo varios DELETE, uno seguido de otro, pero necesito que si hay un error
en alguno de los DELETE, se vuelva todo atrás

la consulta/transacción la disparo desde el Query Analizer

desde ya muchas gracias

saludos

Pablo

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
09/02/2006 - 17:57 | Informe spam
On Thu, 9 Feb 2006 13:48:07 -0300, "Mennegguzzi"
wrote:

Hola a todos, una consulta

hay alguna forma de establecer que ante un error en alguna de varias
transacciones se vuelva atrás hasta antes de la primera ?



Usar transacciones anidadas (nested transactions en inglés).


Saludos
Alfredo
Respuesta Responder a este mensaje
#2 Mennegguzzi
09/02/2006 - 18:11 | Informe spam
Alfredo, vos podrías darme una mano sobre como usar transacciones anidadas ?
el ejemplo es el siguiente:

DELETE Campo_1, Campo_2
FROM Tabla_1

DELETE Campo_1, Campo_2
FROM Tabla_2

DELETE Campo_1, Campo_2
FROM Tabla_3


y yo necesito que todo vuelva atrás de darse un error en cualquiera de los
DELETE

desde ya muchas gracias

saludos
Pablo


"Alfredo Novoa" escribió en el mensaje
news:
On Thu, 9 Feb 2006 13:48:07 -0300, "Mennegguzzi"
wrote:

Hola a todos, una consulta

hay alguna forma de establecer que ante un error en alguna de varias
transacciones se vuelva atrás hasta antes de la primera ?



Usar transacciones anidadas (nested transactions en inglés).


Saludos
Alfredo
Respuesta Responder a este mensaje
#3 Liliana Sorrentino
09/02/2006 - 19:07 | Informe spam
Hola Pablo,
En este caso no necesitás transacciones anidadas, solo poner las tres
instrucciones en la misma transacción:

BEGIN TRAN

DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END
DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END
DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END

COMMIT TRAN

Saludos,
Liliana.

"Mennegguzzi" escribió en el mensaje
news:
Alfredo, vos podrías darme una mano sobre como usar transacciones anidadas


?
el ejemplo es el siguiente:

DELETE Campo_1, Campo_2
FROM Tabla_1

DELETE Campo_1, Campo_2
FROM Tabla_2

DELETE Campo_1, Campo_2
FROM Tabla_3


y yo necesito que todo vuelva atrás de darse un error en cualquiera de los
DELETE

desde ya muchas gracias

saludos
Pablo


"Alfredo Novoa" escribió en el mensaje
news:
> On Thu, 9 Feb 2006 13:48:07 -0300, "Mennegguzzi"
> wrote:
>
>>Hola a todos, una consulta
>>
>>hay alguna forma de establecer que ante un error en alguna de varias
>>transacciones se vuelva atrás hasta antes de la primera ?
>
> Usar transacciones anidadas (nested transactions en inglés).
>
>
> Saludos
> Alfredo


Respuesta Responder a este mensaje
#4 Mennegguzzi
09/02/2006 - 21:15 | Informe spam
Muchas gracias a ambos

saludos

Pablo


"Liliana Sorrentino" escribió en el mensaje
news:%
Hola Pablo,
En este caso no necesitás transacciones anidadas, solo poner las tres
instrucciones en la misma transacción:

BEGIN TRAN

DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END
DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END
DELETE...
IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END

COMMIT TRAN

Saludos,
Liliana.

"Mennegguzzi" escribió en el mensaje
news:
Alfredo, vos podrías darme una mano sobre como usar transacciones
anidadas


?
el ejemplo es el siguiente:

DELETE Campo_1, Campo_2
FROM Tabla_1

DELETE Campo_1, Campo_2
FROM Tabla_2

DELETE Campo_1, Campo_2
FROM Tabla_3


y yo necesito que todo vuelva atrás de darse un error en cualquiera de
los
DELETE

desde ya muchas gracias

saludos
Pablo


"Alfredo Novoa" escribió en el mensaje
news:
> On Thu, 9 Feb 2006 13:48:07 -0300, "Mennegguzzi"
> wrote:
>
>>Hola a todos, una consulta
>>
>>hay alguna forma de establecer que ante un error en alguna de varias
>>transacciones se vuelva atrás hasta antes de la primera ?
>
> Usar transacciones anidadas (nested transactions en inglés).
>
>
> Saludos
> Alfredo






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida