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!

Los contenidos de éste sitio se encuentran publicados bajo
Comentarios recientes