Tecnología

Inicio

¿Qué es un cursor en TSQL?

¿Qué es un cursor en TSQL?


Transact-SQL, o T-SQL para abreviar, es una extensión del estándar SQL - un lenguaje de programación diseñado para la gestión de datos en bases de datos relacionales - implementadas por Microsoft, en su producto de SQL Server y Sybase, en su producto Adaptive Server Enterprise . En una base de datos relacional, los datos se almacenan en las tablas de filas y columnas. En T-SQL, un cursor es una estructura de control de llamada utilizado por un programa de aplicación para que apunte a una fila de datos.

Posición del cursor

Un cursor está asociado con una declaración, conocida como una instrucción SELECT, que consulta la base de datos y recupera cero o más filas de una o más tablas de base de datos en base a los criterios especificados. Un cursor se compone de un conjunto de filas resultantes de la ejecución de la instrucción SELECT asociado con el cursor y la posición del cursor, que es un puntero a una fila con el conjunto de resultados.

Declaración

En T-SQL, los atributos de un cursor, incluyendo la consulta utilizada para construir el conjunto de resultados en el que opera el cursor, se definen mediante una instrucción DECLARE CURSOR. La instrucción DECLARE CURSOR crea la estructura del cursor y recopila y almacena la consulta asociada con el cursor, pero no se ejecuta la consulta.

Apertura y Fetching

La instrucción DECLARE CURSOR es seguido por una sentencia OPEN, que abre el cursor o, en otras palabras, lleva a cabo operaciones básicas - tales como el bloqueo de una tabla de base de datos, de modo que no se puede utilizar o modificar de aplicaciones concurrentes - que permiten la consulta asociado con el cursor para ser ejecutado. La sentencia OPEN devuelve un conjunto de resultados y una zona de alcance comando ejecuta el cursor compilado y devuelve una o más filas del conjunto de resultados. El comando FETCH mueve la posición actual del cursor hacia abajo el conjunto de resultados de una o más filas a la vez.

Clausura

Después de haber recuperado una fila de datos en base a la consulta asociada con el cursor, lo que queda es examinar, actualizar o borrar la fila a través del cursor. Actualizar y borrar las operaciones son opcionales, pero en cualquier caso sólo se aplican a la fila de datos en la posición actual del cursor después de una zona de alcance. Tenga en cuenta que no se puede utilizar un cursor para insertar filas en una tabla de base de datos. Cuando se procesan en todas las filas correspondientes en el conjunto de resultados es completa, una orden de cierre se utiliza para cerrar el conjunto de resultados, eliminar las tablas temporales y desasignar los recursos asignados a la estructura del cursor. El comando CLOSE puede, de hecho, ser ejecutado en cualquier momento, sin tener que procesar todo el conjunto de resultados.