Top Ad unit 728 × 90

Recientes

recent

Cursores en Sql Server - Bases de Datos en Microsoft Sql Server 2014 (34-35)

Buen día amigos de IncanatoIt, continuamos en este curso de base de datos en Microsoft Sql Server 2014, en este artículo trabajaremos con el uso de cursores.

Puedes seguir el curso Completo desde:

Puedes descargar el Material del Curso desde, Archivos del Curso, Backup y Presentaciones:

Cursores

Los cursores son una herramienta de SQL que nos permite recorrer el resultado de una consulta SQL y realizar operaciones en cada paso de esta. Es así como nos ayuda a realizar operaciones que de otro modo serían más complejas o imposibles.

Declaración de un Cursor - Sintáxis

Declare Nombre_Cursor 
[INSENSITIVE][SCROLL] CURSOR 
FOR EXPRESSION_SELECT
[FOR READ ONLY 
| UPDATE [OF column_name[,…n]]] 

Ejemplos:

Ejemplo 1:
Implementar un cursos básico donde se imprima el primer registro de la table PASAJERO.

Tabla Pasajero

--Declaramos la variable de tipo cursor

--donde almacenamos los registros de la consulta

--pasajero

DECLARE micursorpas CURSOR

     FOR select * from PASAJERO

--aperturamos el cursor

OPEN micursorpas

--accedemos al primer registro del cursos con el operador

--next

FETCH NEXT FROM micursorpas

--Cerramos el cursor
close micursorpas
--liberamos el cursor con el operador deallocate
deallocate micursorpas

Ejemplo 2:
Implementar un cursor donde se imprima en forma de reporte a los registros de la tabla PASAJERO.

Tabla Pasajero - Pais



--Declaramos las variables locales que representaran
--el valor de las columnas
DECLARE @idpasajero char(8),@pasajero char(20),
@pais char(10),@documento char(12)
--declaramos el cursor con la consulta de la tabla pasajero
--y país

DECLARE micursor CURSOR

     FOR select pas.idpasajero,

     (pas.nombre+ ' ' +pas.apaterno) as pasajero,

     pai.nombre as pais,pas.num_documento

     from pasajero pas inner join pais pai
     on pas.idpais=pai.idpais
--aperturamos el cursos
OPEN micursor
--obtenemos el primer registro y enviamos el valor
--a las variables correspondientes
FETCH micursor INTO @idpasajero,@pasajero,@pais,@documento
--Imprimimos la cabecera del reporte
PRINT 'CODIGO       PASAJERO                PAIS       DOCUMENTO'
PRINT '----------------------------------------------------------'
--Implementamos una estructura iterativa para poder
--imprimir todos los registros
WHILE @@FETCH_STATUS=0
BEGIN
     PRINT @idpasajero+space(5)+@pasajero+space(5)+
     @pais+space(5)+@documento
     FETCH micursor INTO @idpasajero,@pasajero,@pais,@documento
END

--Cerramos el cursor
close micursor
--liberamos el cursor con el operador deallocate
deallocate micursor

Cursores (34-35) Bases de Datos en Microsoft Sql Server 2014


Saludos Imperio, un abrazo a la distancia.
Cursores en Sql Server - Bases de Datos en Microsoft Sql Server 2014 (34-35) Reviewed by IncanatoIt-ad on 16:30 Rating: 5

2 comentarios:

  1. Hola Juan, mil gracias por los cursos, una consulta, esto de los cursores también se puede realizar utilizando variables de tipo tabla y recorriendo-las con while, cual proceso gasta menos memoria o carga menos el servidor?.

    ResponderEliminar

Todos los derechos reservados www.IncanatoIT.com - Desarrollando Software © 2014 - 2019
Desarrollado por Blogger, Designed by Sweetheme
IncanatoIt.com. Con la tecnología de Blogger.
y>