Buenas... primero que nada, deberias mirar la
guia de estilo para postear en condiciones...
Es muy simple el problema, lo tienes en el procedimiento Detalle, ya que el @@ERROR sera distinto de 0, en el caso que el procedimiento actual tenga algun fallo, pero es que el procedimiento Detalle, no contiene ningun manejo de errores por lo cual te sugiero que hagas algo como
Código:
if @@error=0
guardar
else
fallar
en el procedimiento Detalle, porque sino siempre tendras este problema, cuando algo falle...
Saludos.