Transacciones en SQL Server 2000
Hola amigos, tengo una duda acerca de cómo se ejecutan unas transacciones
Estoy haciendo mantenimiento a una aplicación y Hay un proceso al elaborar facturas que manda a llamar un procedimiento almacenado que a su vez manda a llamar a otros 2 dentro del mismo y uno de esos 2 manda a llamar a otro, mi pregunta es si el ROLLBACK se ejecutaría en caso de que el procedimiento proc1 el DELETE no se pudiera ejecutar correctamente , ¿se deshace el COMMIT del proc2 y del proc3?, ¿el rollback tran1 deshace el commit tran2 y commit tran3?
create procedure proc 1
begin tran1
exec proc2
exec proc3
UPDATE
INSERT
DELETE {DIGAMOS QUE AQUI HAY UN ERROR Y YA NO SE PUEDE CONTINUAR}
INSERT
if condicion
commit tran1
else
rollback tran1
create procedure proc 2
begin tran2
if condicion
commit tran2
else
rollback tran2
create procedure proc 3
begin tran3
exec proc4
.
if condicion
commit tran3
else
rollback tran3
create procedure proc 4
begin tran4
if condicion
commit tran4
else
rollback tran4
¿si se ejecuta el rollback de todas las transacciones o me tocara hacer un procedimiento almacenado con el contenido de todas las transacciones y meterlas a una sola transaccion?