rollback de varias transacciones

12/11/2007 - 02:50 por Fabian Martucci | Informe spam
Estoy trabajando con Sql Server 2000.
Tengo lo siguiente:
Begin Tran
Update bancos set fecha=getdate() where id = 123
Insert into Cajadiaria(fecha,monto) values(getdate(),100)
Insert into Prueba(detalle,numero) values('fff',1)
commit tran

quiero deshacer las tres transacciones si en una de ellas hubo un error.
Saludos y Gracias
 

Leer las respuestas

#1 jeastman
12/11/2007 - 04:44 | Informe spam
Hola Fabina.


Una vez que inicias una tranasacción la puedes cancelar en cualquier
parte con "rollback transaction".

En tu caso puedes manejarlo así.


Begin Tran
Update bancos set fecha=getdate() where id = 123

if @@error != 0
begin
rollback transaction
goto salir
end

Insert into Cajadiaria(fecha,monto) values(getdate(),100)
if @@error != 0
begin
rollback transaction
goto salir
end

Insert into Prueba(detalle,numero) values('fff',1)
if @@error != 0
begin
rollback transaction
goto salir
end

commit tran

salir:

Puedes ajustar este ejemplo según tu estilo de programar y tus necesidades.

Espero que te sea de ayuda.

Saludos.

Fabian Martucci escribió:
Estoy trabajando con Sql Server 2000.
Tengo lo siguiente:
Begin Tran
Update bancos set fecha=getdate() where id = 123
Insert into Cajadiaria(fecha,monto) values(getdate(),100)
Insert into Prueba(detalle,numero) values('fff',1)
commit tran

quiero deshacer las tres transacciones si en una de ellas hubo un error.
Saludos y Gracias

Preguntas similares