SlideShare una empresa de Scribd logo
1 de 9
En SQL Server un cursor puede
definirse como un elemento que
representará a un conjunto de datos
determinado por una consulta T-SQL,
el cursor permitirá recorrer fila a fila,
leer y eventualmente modificar dicho
conjunto de resultados.
DECLARACIÓN:
El primer paso constará de la
declaración del cursor, donde se
indicarán (junto con el nombre del
cursor) la consulta que el mismo
representará y algunas otras
características bastante interesantes.
APERTURA:
La apertura del cursor ejecutará la
consulta definida en el paso previo y
cargará los datos en el mismo. La
función OPEN de T-SQL permitirá
efectuar esta terea, para continuar
con el ejemplo previo la forma de
abrir el cursor será la siguiente:
CIERRE:
En el cierre del cursor se liberarán los
registros tomados por el mismo. Una
vez que el cursor es cerrado ya no
podrá recorrerse el conjunto de
resultados hasta que el mismo sea
reabierto, la sentencia CLOSE
cerrará un cursor abierto.
DESALOJO:
Este paso eliminará la referencia
al cursor definido previamente,
por lo que ya no será posible
realizar una reapertura del mismo.
DECLARE @COL1 VARCHAR(50),@COL2 VARCHAR(30),@COL3 VARCHAR(30),@COL4 INT
--DECLARACION DEL CURSOR
DECLARE C_ALUMNO_HERMANOS CURSOR FOR
SELECT Nombres,ApellidoPaterno,ApellidoMaterno,NroHermanos FROM Alumno
WHERE NroHermanos>0
--ABRIR DATOS
OPEN C_ALUMNO_HERMANOS
--LISTAR DATOS
FETCH C_ALUMNO_HERMANOS INTO @COL1,@COL2,@COL3,@COL4
WHILE(@@FETCH_STATUS=0)
BEGIN
PRINT @COL1 +' | '+ @COL2+' | '+@COL3+' | '+RTRIM(STR(@COL4))
FETCH C_ALUMNO_HERMANOS INTO @COL1,@COL2,@COL3,@COL4
END
--CERRAR CURSOR
CLOSE C_ALUMNO_HERMANOS
--DESALOJAR
DEALLOCATE C_ALUMNO_HERMANOS
EJEMPLO:
CONCLUSIÓN:
Los cursores son muy útiles sobre todo cuando no
podemos tener todas las columnas que
necesitamos en un solo SELECT. Si podemos
tener a todas las columnas en un solo SELECT
puede ser más práctico usar el comando SELECT
… INTO
Como el Firebird nos permite tener abiertos dos,
tres, o más cursores al mismo tiempo entonces
podemos extraer de cada uno de ellos las
columnas que necesitamos para procesarlas.

Más contenido relacionado

La actualidad más candente

Diferencas , ventajas y desventajas
Diferencas , ventajas y desventajasDiferencas , ventajas y desventajas
Diferencas , ventajas y desventajasbane12
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3ayreonmx
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Martin Pacheco Chávez
 
PROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesPROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesMaiky Kobatakane
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 

La actualidad más candente (20)

Modelos Prescriptivos de Proceso
Modelos Prescriptivos de ProcesoModelos Prescriptivos de Proceso
Modelos Prescriptivos de Proceso
 
Diferencas , ventajas y desventajas
Diferencas , ventajas y desventajasDiferencas , ventajas y desventajas
Diferencas , ventajas y desventajas
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Encapsulamiento poo
Encapsulamiento pooEncapsulamiento poo
Encapsulamiento poo
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.
 
PROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesPROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas dobles
 
Reglas Negocio
Reglas NegocioReglas Negocio
Reglas Negocio
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Ejemplos acid
Ejemplos acidEjemplos acid
Ejemplos acid
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 

Similar a SQL Server cursores: declaración, apertura, cierre y desalojo (20)

13 Guía_Fundamentos de Base de Datos.docx
13 Guía_Fundamentos de Base de Datos.docx13 Guía_Fundamentos de Base de Datos.docx
13 Guía_Fundamentos de Base de Datos.docx
 
13 Guía_Fundamentos de Base de Datos (1).docx
13 Guía_Fundamentos de Base de Datos (1).docx13 Guía_Fundamentos de Base de Datos (1).docx
13 Guía_Fundamentos de Base de Datos (1).docx
 
Pl
PlPl
Pl
 
Apunte plsql
Apunte plsqlApunte plsql
Apunte plsql
 
Conceptos basicos de programacion con pl sql
Conceptos basicos de programacion con pl sqlConceptos basicos de programacion con pl sql
Conceptos basicos de programacion con pl sql
 
02 sql reference
02   sql reference02   sql reference
02 sql reference
 
Consultas en SQL Server
Consultas en SQL ServerConsultas en SQL Server
Consultas en SQL Server
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado Oracle
 
SESION-07.pptx
SESION-07.pptxSESION-07.pptx
SESION-07.pptx
 
Pl Sql
Pl SqlPl Sql
Pl Sql
 
SQL
SQLSQL
SQL
 
44777047 oracle
44777047 oracle44777047 oracle
44777047 oracle
 
CURSORES
CURSORESCURSORES
CURSORES
 
CURSORES
CURSORESCURSORES
CURSORES
 
Sql Sentencias
Sql Sentencias Sql Sentencias
Sql Sentencias
 
Consultasql
ConsultasqlConsultasql
Consultasql
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
5 cursores
5 cursores5 cursores
5 cursores
 
ResultSet
ResultSetResultSet
ResultSet
 
Actividad2 capitulo I contenido
Actividad2 capitulo I  contenidoActividad2 capitulo I  contenido
Actividad2 capitulo I contenido
 

Más de Lisbeth Ocaña Bueno (20)

OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.
 
COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Comandos DDL
Comandos DDLComandos DDL
Comandos DDL
 
VISTAS
VISTASVISTAS
VISTAS
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Ejecutables en Netbeans
Ejecutables en NetbeansEjecutables en Netbeans
Ejecutables en Netbeans
 
REPORTES
REPORTESREPORTES
REPORTES
 
Objeto sqlcommand
Objeto sqlcommandObjeto sqlcommand
Objeto sqlcommand
 
OBJETO CONNECTION
OBJETO CONNECTIONOBJETO CONNECTION
OBJETO CONNECTION
 
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENTESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor de Base de Datos.
Gestor de Base de Datos.Gestor de Base de Datos.
Gestor de Base de Datos.
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
JTABLE
JTABLEJTABLE
JTABLE
 
RESULTSET
RESULTSETRESULTSET
RESULTSET
 
Statement
StatementStatement
Statement
 

SQL Server cursores: declaración, apertura, cierre y desalojo

  • 1.
  • 2.
  • 3. En SQL Server un cursor puede definirse como un elemento que representará a un conjunto de datos determinado por una consulta T-SQL, el cursor permitirá recorrer fila a fila, leer y eventualmente modificar dicho conjunto de resultados.
  • 4. DECLARACIÓN: El primer paso constará de la declaración del cursor, donde se indicarán (junto con el nombre del cursor) la consulta que el mismo representará y algunas otras características bastante interesantes.
  • 5. APERTURA: La apertura del cursor ejecutará la consulta definida en el paso previo y cargará los datos en el mismo. La función OPEN de T-SQL permitirá efectuar esta terea, para continuar con el ejemplo previo la forma de abrir el cursor será la siguiente:
  • 6. CIERRE: En el cierre del cursor se liberarán los registros tomados por el mismo. Una vez que el cursor es cerrado ya no podrá recorrerse el conjunto de resultados hasta que el mismo sea reabierto, la sentencia CLOSE cerrará un cursor abierto.
  • 7. DESALOJO: Este paso eliminará la referencia al cursor definido previamente, por lo que ya no será posible realizar una reapertura del mismo.
  • 8. DECLARE @COL1 VARCHAR(50),@COL2 VARCHAR(30),@COL3 VARCHAR(30),@COL4 INT --DECLARACION DEL CURSOR DECLARE C_ALUMNO_HERMANOS CURSOR FOR SELECT Nombres,ApellidoPaterno,ApellidoMaterno,NroHermanos FROM Alumno WHERE NroHermanos>0 --ABRIR DATOS OPEN C_ALUMNO_HERMANOS --LISTAR DATOS FETCH C_ALUMNO_HERMANOS INTO @COL1,@COL2,@COL3,@COL4 WHILE(@@FETCH_STATUS=0) BEGIN PRINT @COL1 +' | '+ @COL2+' | '+@COL3+' | '+RTRIM(STR(@COL4)) FETCH C_ALUMNO_HERMANOS INTO @COL1,@COL2,@COL3,@COL4 END --CERRAR CURSOR CLOSE C_ALUMNO_HERMANOS --DESALOJAR DEALLOCATE C_ALUMNO_HERMANOS EJEMPLO:
  • 9. CONCLUSIÓN: Los cursores son muy útiles sobre todo cuando no podemos tener todas las columnas que necesitamos en un solo SELECT. Si podemos tener a todas las columnas en un solo SELECT puede ser más práctico usar el comando SELECT … INTO Como el Firebird nos permite tener abiertos dos, tres, o más cursores al mismo tiempo entonces podemos extraer de cada uno de ellos las columnas que necesitamos para procesarlas.