Un cursor en Transact SQL es una herramienta que permite recorrer los registros de una consulta de a uno. Sería el equivalente a usar un for o for each para recorrer una consulta SELECT. Su uso es bastante sencillo, el código es así:
--Declaramos una tabla en memoria donde guardar --los registros que levante el cursor. DECLARE @tabla TABLE (campo1 int, campo2 varchar(20)) --Declaramos una variable para guardar los nombres DECLARE @Nombre varchar(20) --Declaramos el cursor de nombre 'Recorredor' DECLARE Recorredor CURSOR FOR --Este cursor va a levantar todos los Id´s y nombres de clientes SELECT Id, Nombre FROM Clientes WHERE Condiciones --Se abre el cursor OPEN Recorredor --Con FetchNext, obtenemos el siguiente registro FETCH NEXT FROM Recorredor --Y lo guardamos en la tabla en memoria --Si se quiere guardar los registros derecho a una tabla, --la cantidad de campos de la tabla debe ser mayor o igual --a la cantidad de campos levantados INTO @tabla WHILE @@FETCH_STATUS = 0 --También se puede guardar en una variable, si levantamos --un solo campo con el cursor. BEGIN --Acá podemos trabajar con los datos que levantamos, el código --después del begin se va a ejecutar por cada registro que levante --el select del cursor. SET @Algo = (SELECT algo FROM algunaTabla WHERE condiciones) --Irreverencias de ejemplo: INSERT INTO AlgunaTabla VALUES(@Variable1, @Variable2) --Obtenemos el siguiente registro: FETCH NEXT FROM Recorredor INTO @tabla END --se cierra el cursor: CLOSE Recorredor DEALLOCATE Recorredor
Si te gustó éste post, podés apoyar a PicandoCódigo a través de PayPal!
Mozilla/5.0 (Windows; U; Windows NT 5.1; es-AR; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Gracias Capo… creo que con esto solucionaría el problema que me trae mal hace una semana.
Necesito recorrer una tabla y poner en columnas un par de datos que se repiten en el registro siguiente.
Ej.: Tabla Original
Emp entrada1 salida1
1 12/01/2009 12:30 12/01/2009 16:40
1 12/01/2009 18:05 12/01/2009 22:30
Tabla Necesitada
Emp entrada1 salida1 entrada2 salida2
1 12/01/2009 12:30 12/01/2009 16:40 12/01/2009 18:05 12/01/2009 22:30
Espero se entienda.
Muchas gracas y te cuento cómo me fue!
Saludos.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100107 IceCat/3.5.7 (like Firefox/3.5.7)
Buenísimo que te haya servido.
Cualquier duda que quede pasá por el foro de Programación.
Saludos!
Trackbacks y pingbacks:
Additional comments powered by BackType
Enlaces
- Re: List Category Posts WordPress Plugin new features request
- Re: List Category Posts WordPress Plugin support
- Re: List Category Posts WordPress Plugin support
- Re: List Category Posts WordPress Plugin support
- Re: List Category Posts WordPress Plugin support
- Re: List Category Posts WordPress Plugin support
- Add Tags Support (Here's how)
- Herramienta
- Re: List Category Posts WordPress Plugin support
- Re: List Category Posts WordPress Plugin support
\n\nRSS del foro:Últimos comentarios
Categorías
Blogroll