Alguna manera de acceder a los resultados de un exec desde fuera

28/09/2005 - 22:45 por Oscar Calvo | Informe spam
Hola a todos,

Tengo un procedimiento almacenado en el que tengo que hacer una busqueda en
varias tablas hacia atras hasta que encuentre un determinado dato.Las tablas
stan numeradas por meses, por lo que debo crear la consulta dinamicamente y
ejecutarla con un exec.Hasta ahora, componia la consulta de todas las tablas
juntas mediante "union" y la ejecutaba.Esto no es nada optimo,ya que
entonces estoy buscando en todas las tablas,cuando lo que debo hacer es
buscar en la primera, y solo si no lo encuentro,seguir por la siguiente etc.
Es decir hasta ahora hacia
set @consulta='select * from tabla1 where... union 'select * from tabla2
where... ' (como digo en principio no se el nombre de las tablas).
y al final el procedimiento exec(@consulta)
La cosa es que si solo busco en una,como se si me devuelve resultados y que
no debo seguir buscando?
Las tablas son muy pesadas, y este procedimiento tiene mucho uso, por lo que
crear tablas temporales y demas cosas extrañas casi lo descarto.

Como soleis hacer esto vosotros?

Gracias y un saludo.
 

Leer las respuestas

#1 Maxi
29/09/2005 - 14:50 | Informe spam
Hola Oscar, 2 cosas

1) pensar en cursores no es buena idea, los motores de base de datos y sobre
todo SQL estan optimizados para trabajar en conjunto de datos y no registro
a registro

2) El uso de SQL - Dinamico no es buena opcion, estas dejando una enorme
puerta de acceso y bajando considerablemente la seguridad de tus
aplicaciones

Recomendaciones:

No nos des la solucion a tu problema, dinos realmente que debe resolver ese
Query y no como optimizar algo que quizas no sea la solucion ideal para
poder resolver la query. Si nos das la info de que debe resolver el query,
las estructuras de las tablas y algunos datos de ejemplo, seguramente entre
varios de aqui podremos darte una manito :-)


Salu2
Maxi


"Oscar Calvo" escribió en el mensaje
news:
Hola a todos,

Tengo un procedimiento almacenado en el que tengo que hacer una busqueda
en
varias tablas hacia atras hasta que encuentre un determinado dato.Las
tablas
stan numeradas por meses, por lo que debo crear la consulta dinamicamente
y
ejecutarla con un exec.Hasta ahora, componia la consulta de todas las
tablas
juntas mediante "union" y la ejecutaba.Esto no es nada optimo,ya que
entonces estoy buscando en todas las tablas,cuando lo que debo hacer es
buscar en la primera, y solo si no lo encuentro,seguir por la siguiente
etc.
Es decir hasta ahora hacia
set @consulta='select * from tabla1 where... union 'select * from tabla2
where... ' (como digo en principio no se el nombre de las tablas).
y al final el procedimiento exec(@consulta)
La cosa es que si solo busco en una,como se si me devuelve resultados y
que
no debo seguir buscando?
Las tablas son muy pesadas, y este procedimiento tiene mucho uso, por lo
que
crear tablas temporales y demas cosas extrañas casi lo descarto.

Como soleis hacer esto vosotros?

Gracias y un saludo.


Preguntas similares