Tipos de cursores (motor de base de datos)

ODBC y ADO definen cuatro tipos de cursores admitidos por Microsoft SQL Server. La instrucción DECLARE CURSOR se ha ampliado para que pueda especificar cuatro tipos para los cursores de Transact-SQL. Estos cursores varían en su capacidad para detectar cambios en el conjunto de resultados y en los recursos que consumen, como la memoria y el espacio de tempdb. Un cursor puede detectar cambios en las filas sólo cuando intenta recuperarlas una segunda vez. El origen de datos no puede notificar al cursor las modificaciones realizadas en las filas recuperadas actualmente. El nivel de aislamiento de la transacción influye también en la capacidad de un cursor para detectar los cambios.

Los cuatro tipos de cursor de servidor de la API que admite el servidor SQL Server son:

  • Cursores estáticos

  • Cursores dinámicos

  • Cursores de sólo avance

  • Cursores controlados por conjunto de claves

Los cursores estáticos detectan pocos cambios o ningún cambio, pero consumen relativamente pocos recursos al desplazarse. Los cursores dinámicos detectan todos los cambios pero consumen más recursos al desplazarse. Los cursores controlados por conjunto de claves se encuentran entre los dos anteriores, pero con un consumo menor que los cursores dinámicos.

Aunque los modelos de cursor de la API de base de datos consideran el cursor de sólo avance como un tipo más, SQL Server no establece esta distinción. SQL Server considera que las opciones de desplazamiento de sólo avance y de desplazamiento son las que se pueden aplicar a los cursores estáticos, a los controlados por conjunto de claves y a los dinámicos.