Cursores en SQL Server

Publicado: agosto 24, 2010 en SQL
Etiquetas:, ,

Para definirlos de una forma clara se podría decir que son bucle que procesa un DataSet cuando recorres sus elementos con un for(), es decir, es un conjunto de registros que devuelve una sentencia Select.

Cómo funcionan los cursores:

Declararemos una variable de cursor con la sentencia:

Declare NombreCursor Cursor For

Después aplicaremos una sentencia Select para recuperar un conjunto de resultados y procesarlos, también podemos ejecutar la select desde otro SP con un Exec y abrimos el cursor con :

Open NombreCursor

y recuperamos la primera fila del cursor con FECH NEXT:

Fetch Next From NombreCursor
Into @Var1, @Var2

donde Var1, Var2 … Varn son las variables donde se dejaran los datos extraidos de la sentencia select, se han de poner tantas variables como campos se devuelvan de la sentencia select y en el mismo orden.
Una vez abierto el cursor comprobamos que todo funcione correctamente y recuperamos el resto de los datos para esto utilizamos un WHILE …FETCH de la siguiente forma:

While @@FETCH_STATUS = 0
Begin
……..

Fetch Next From NombreCursor
Into @Var1, @Var2
End
@@FETCH_STATUS

puede tener los siguientes valores dependiendo del resultado de la consulta:
Valor – definición
0 – La instrucción FETCH se ejecutó correctamente.
-1 – La instrucción FETCH ha finalizado con error o la fila estaba más allá del conjunto de resultados.
-2 – Falta la fila recuperada.
y por ultimo cerraremos el cursor y liberamos los recurso utilizados.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s