eliminacion cursores

21/07/2005 - 18:24 por Eduardo De Luca | Informe spam
Que tal como estan . Estoy rescribiendo unos procesos (eliminado cursores) ,
para que el mismo sea mas optimo.

El sistema guarda en un campo de una tabla , una serie de consultas. Las
mismas son armadas por un wizard que tiene el sistema. Si ya lo se ,es una
locura pero es lo que me toco .

El tema es que esas consultas no se modifican todos los dias , entonces
habia pensado en sacarlas de dichas tablas y compilarlas en un sp.

El problema que se me presenta el el sgte : para leer el campo donde estan
las consultas , el sistema usa un cursor y realiza lo sgte:







SELECT @sql = 'DECLARE cur_cta CURSOR FOR ' + @v_cons

EXEC sp_executesql @sql



..

..

..



Esto es una locura.

La pregunta es alguno sabe como podría leer secuencialmente los campos de
una tabla (que es donde están las consultas ) para no usar el cursor pensé
en algo asi :





declare @d varchar (4000)



select @d = v_cons from tabla_aux





y luego con la variable crear el sp , pero no funciona. Ya que en la
variable queda, siempre con el valor de la ultima iteración , y yo necesito
procesar fila a fila.

Alguno se le ocurre algo?

Preguntas similare

Leer las respuestas

#1 Maxi
21/07/2005 - 19:42 | Informe spam
Hola, mmm si queres ejecutar la consulta de una tabla no queda otro remedio
q cursores y sql-dinamico. Las consultas deberian estar seperadas en sp's
pero para ello tambien debes cambiar el cliente


Salu2
Maxi


"Eduardo De Luca" escribió en el mensaje
news:eLzWX%
Que tal como estan . Estoy rescribiendo unos procesos (eliminado cursores)
, para que el mismo sea mas optimo.

El sistema guarda en un campo de una tabla , una serie de consultas. Las
mismas son armadas por un wizard que tiene el sistema. Si ya lo se ,es una
locura pero es lo que me toco .

El tema es que esas consultas no se modifican todos los dias , entonces
habia pensado en sacarlas de dichas tablas y compilarlas en un sp.

El problema que se me presenta el el sgte : para leer el campo donde estan
las consultas , el sistema usa un cursor y realiza lo sgte:







SELECT @sql = 'DECLARE cur_cta CURSOR FOR ' + @v_cons

EXEC sp_executesql @sql



..

..

..



Esto es una locura.

La pregunta es alguno sabe como podría leer secuencialmente los campos de
una tabla (que es donde están las consultas ) para no usar el cursor pensé
en algo asi :





declare @d varchar (4000)



select @d = v_cons from tabla_aux





y luego con la variable crear el sp , pero no funciona. Ya que en la
variable queda, siempre con el valor de la ultima iteración , y yo
necesito procesar fila a fila.

Alguno se le ocurre algo?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida