Cursor dinamico...!

24/08/2007 - 17:49 por AlejoR | Informe spam
Buenas dias grupo SQL.
Dado el siguiente codigo Transact, como hago para poder "manipular" los
valores de las columnas de cada registro que retorna el cursor "dinamico"
La cantidad de columnas del cursor (que esta basado en un sql dinamico
también) es variable.

DECLARE @my_cur CURSOR
EXEC sp_executesql
N'SET @my_cur = CURSOR FOR SELECT name FROM dbo.sysobjects; OPEN @my_cur',
N'@my_cur cursor OUTPUT', @my_cur OUTPUT

FETCH NEXT FROM @my_cur

WHILE (@@FETCH_STATUS <> -1)
BEGIN
- COMO LEO LOS VALORES RETORNADOS DEL CURSOR

FETCH NEXT FROM @CUR_CLAUSULA

END;

CLOSE @CUR_CLAUSULA;
DEALLOCATE @CUR_CLAUSULA;



Gracias por los comentarios.
 

Leer las respuestas

#1 Carlos Sacristan
24/08/2007 - 18:54 | Informe spam
No recomiendo usar cursores y encima unido a código dinámico,
seguramente lo que necesitas se podría hacer de una forma más eficiente. Aún
así, si sigues necesitándolo, echa un vistazo al código fuente del
procedimiento sp_MSforeachdb de master; ahí se hace algo similar a lo que
necesitas

"AlejoR" escribió en el mensaje
news:
Buenas dias grupo SQL.
Dado el siguiente codigo Transact, como hago para poder "manipular" los
valores de las columnas de cada registro que retorna el cursor "dinamico"
La cantidad de columnas del cursor (que esta basado en un sql dinamico
también) es variable.

DECLARE @my_cur CURSOR
EXEC sp_executesql
N'SET @my_cur = CURSOR FOR SELECT name FROM dbo.sysobjects; OPEN @my_cur',
N'@my_cur cursor OUTPUT', @my_cur OUTPUT

FETCH NEXT FROM @my_cur

WHILE (@@FETCH_STATUS <> -1)
BEGIN
- COMO LEO LOS VALORES RETORNADOS DEL CURSOR

FETCH NEXT FROM @CUR_CLAUSULA

END;

CLOSE @CUR_CLAUSULA;
DEALLOCATE @CUR_CLAUSULA;



Gracias por los comentarios.

Preguntas similares