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  http://adf.ly/pl1Bk

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 - País



--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 Juan Carlos Arcila Díaz 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

All Rights Reserved by www.IncanatoIT.com - Desarrollando Software © 2014 - 2015
Powered By Blogger, Designed by Sweetheme

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

IncanatoIt.com. Con la tecnología de Blogger.