Buenos dias:
Disculpen las molestias tengo un problema espero y me puedan ayudar lo que pasa es que trato de hacer trassaciones anidadas en donde tengo por ejemplo los 2 procedimiento
create procedure A as begin declare @error int begin try begin tran insert into tablaA(numero,tipo) values (1,1) exec @error =B 1 if ((select binary_checksum(*) from TablaA where numero=1) =235 and @error =0 ) begin commit tran end else begin rollback tran insert into auditorio(numero, mensaje) values (1,'No se pudo realizar la transaccion') end end try begin catch end catch end
Este procedimiento A tiene como finalidad insertar en la tabla principal, posterior mente llamar al procedimiento B que es el encargado de insertar los elementos que dependendientes que es ejemplo B
create procedure B as begin declare @error int begin try begin tran insert into tablaB(numero,tipo) values (1,1) if ((select binary_checksum(*) from TablaB where numero=1) =512 ) begin commit tran return 0 end else begin rollback tran insert into auditoria(numero, mensaje) values (1,'No se pudo insertar este elemento ya que no coicide con el origen') return 1 end end try begin catch insert into auditoria(numero, mensaje) values (1,error_message()) return 1 end catch end
Etonces que es lo que necesito que la tabla de auditoria se ingresan todos los detalles de la transsaccion suponiendo que se hizo un rollback me debe de mostrar dos mensajes en la tabla de auditoria:
Mensaje 1:
No se pudo realizar la transaccion
Mensaje 2:
No se pudo insertar este elemento ya que no coicide con el origen
pero a lo cual solo me muestra el mensaje uno que me indica que no se pudo realizar la trassacion y yo necesito el detalle de cada una de las inserciones el motivo por que no se pudo insertar.
No se si me haya explicado de lo que pretendo hacer pero no encuentro como lograrlo mucho les agradeceria si me pueden apoyar.
saludos y gracias