> mai bine bag intr-o tabela temporara acest union la inceputul procedurii si apoi citesc din ea?
Depinde, în funcţie de cât de multe date sunt returnate de acest UNION. Dacă sunt câteva zeci sau sute de rânduri (sau poate chiar câteva mii), s-ar putea să fie mai eficient, cu condiţia să existe un index pe coloana MessageCode în tabela temporară. Dacă sunt mai mult de câteva mii de rânduri, atunci simpla copiere în tabela temporară ar putea dura destul de mult.
Răzvan