Resumen: en este tutorial, aprenderá a usar el cursor de SQL Server para procesar un conjunto de resultados, una fila a la vez.
SQL funciona basado en un conjunto, por ejemplo, la declaración SELECT
devuelve un conjunto de filas que se denomina conjunto de resultados. Sin embargo, a veces, es posible que desee procesar un conjunto de datos fila por fila. Aquí es donde entran en juego los cursores.
¿Qué es un cursor de base de datos?
Un cursor de base de datos es un objeto que permite recorrer las filas de un conjunto de resultados. Le permite procesar filas individuales devueltas por una consulta.
Ciclo de vida del cursor de SQL Server
Estos son los pasos para usar un cursor:
Primero, declare un cursor.
Code language: SQL (Structured Query Language) (sql)
Para declarar un cursor, especifique su nombre después de la palabra clave DECLARE
con el tipo de datos CURSOR
y proporcione un SELECT
declaración que define el conjunto de resultados para el cursor.
A continuación, abra y complete el cursor ejecutando SELECT
declaración:
Code language: SQL (Structured Query Language) (sql)
Luego, busque una fila del cursor en una o más variables:
Code language: SQL (Structured Query Language) (sql)
SQL Server proporciona la función @@FETCHSTATUS
que devuelve el estado de la última instrucción FETCH
del cursor ejecutada contra el cursor; Si @@FETCHSTATUS
devuelve 0, significa que la instrucción FETCH
se realizó correctamente. Puede usar la instrucción WHILE
para recuperar todas las filas del cursor como se muestra en el siguiente código:
Code language: SQL (Structured Query Language) (sql)
Después de eso, cierre el cursor:
Code language: SQL (Structured Query Language) (sql)
Finalmente, desasigne el cursor:
Code language: SQL (Structured Query Language) (sql)
Ejemplo de cursor de SQL Server
Usaremos la tabla prodution.products
de la base de datos de muestra para mostrarle cómo usar un cursor:
Primero, declare dos variables para contener el nombre del producto y el precio de lista, y un cursor para contener el resultado de una consulta que recupera el nombre del producto y el precio de lista de la production.products
tabla:
A continuación, abra el cursor:
Code language: SQL (Structured Query Language) (sql)
Luego, busque cada fila del cursor e imprima el nombre del producto y el precio de lista:
Después de eso, cierre el cursor:
Code language: SQL (Structured Query Language) (sql)
Finalmente, desasigne el cursor para liberarlo.
Los siguientes fragmentos de código unen todo:
Aquí está el resultado parcial:
En la práctica, rara vez usará el cursor para procesar un conjunto de resultados de una manera fila por fila.
En este tutorial, ha aprendido a usar el cursor de SQL Server para procesar un conjunto de resultados, cada fila a la vez.