Wop!
Por lo que dices, parece que el error lo produce al hacer la última select, por eso ves los datos actualizados. De todas maneras, no veo nada raro en ella
A parte de eso, veo que estás creando una tabla "normal", eso te puede dat problemas en caso de concurrencia... yo usaría tablas temporales que solamente vea el usuario activo, con el operador @@
