Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/10/2012, 07:15
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Transacciones en procedimientos almacenados

No veo en tu código el punto donde inicias la transacción, por lo que es posible que esté antes de ejecutarlo.
Si es así, si la transacción inicia y termina fuera del SP, te has olvidado de tener en cuenta que existen sentencias que provocan COMMIT implícito, como es el caso del CREATE y DROP. Y como estás borrando y creando tablas dentro del SP, esta acción puede estar generando ese COMMIT en la transacción, y por ende toda operación DML posterior está fuera de una transacción...

Si el tema es que supones que no debería funcionar, porque las tablas que creas son TEMPORARY, te aclaro que el DROP que haces no las está afectando, porque las tablas creadas con CREATE TEMPORARY TABLE se deben eliminar con DROP TEMPORARY TABLE (eso en el caso de que la conexión no se cierre), y eso no lo estás haciendo.
Además, el que sea TEMPORARY no afecta la restricción del DROP y el CREATE para una transacción.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 29/10/2012 a las 07:21