Código:
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 transaccionCREATE 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
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