Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2007, 09:42
Avatar de Developer9
Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 2 meses
Puntos: 47
Sobre transacciones

Buenas... tengo unas dudas con respecto al manejo de transacciones. Tengo 2 procedimientos:

Código:
CREATE PROCEDURE proc1
as

BEGIN TRAN

INSERT INTO ...
IF (@@error <> 0)
BEGIN
	ROLLBACK TRAN
	RETURN
END

INSERT INTO ...
IF (@@error <> 0)
BEGIN
	ROLLBACK TRAN
	RETURN
END

EXEC proc2
IF (@@error <> 0)
BEGIN
	ROLLBACK TRAN
	RETURN
END

COMMIT TRAN
END



CREATE PROCEDURE proc2
as

BEGIN TRAN

INSERT INTO ...
IF (@@error <> 0)
BEGIN
	ROLLBACK TRAN
	RETURN
END

COMMIT TRAN
END
Si no ocurre ningún error todo marcha bien. Pero sin en en la ultima línea del proc2 yo en vez de commit tran le pongo ROLLBACK TRAN y ejecuto el proc1 (que llama al proc2) entonces se me cae diciendo algo sobre que el commit tran no corresponde a ninguna transaccion

No entiendo bien como funciona esto de las transacciones. Yo tengo dos transacciones, si se hace rollback a la transacción del proc2 entonces me queda una transacción, que es la transacción del proc1, pero es como que si un rollback le haga rollback a todas las transacciones