Compartir a través de


Cursores estáticos (motor de base de datos)

El conjunto de resultados completo de un cursor estático se genera en tempdb cuando se abre el cursor. Un cursor estático siempre muestra el conjunto de resultados tal como estaba al abrir el cursor.

El cursor no refleja las modificaciones realizadas en la base de datos que afectan a la pertenencia al conjunto de resultados o a los valores modificados en las columnas de las filas que forman el conjunto de resultados. Un cursor estático no muestra las nuevas filas insertadas en la base de datos después de abrir el cursor, aunque coincidan con las condiciones de búsqueda de la instrucción SELECT del cursor. Si otros usuarios actualizan las filas que conforman el conjunto de resultados, los nuevos valores de datos no se muestran en el cursor estático. El cursor estático muestra las filas eliminadas de la base de datos una vez que se ha abierto el cursor. Las operaciones UPDATE, INSERT o DELETE no se reflejan en un cursor estático (a menos que se cierre éste y se vuelva a abrir), ni tampoco las modificaciones realizadas con la misma conexión que abrió el cursor.

Los cursores estáticos de SQL Server son siempre de sólo lectura.

Debido a que el conjunto de resultados de un cursor estático se almacena en una tabla de trabajo de tempdb, el tamaño de las filas del conjunto de resultados no puede exceder el tamaño máximo de fila en una tabla de SQL Server.

Transact-SQL utiliza el término INSENSITIVE para los cursores estáticos. Algunas API de base de datos los identifican como cursores de instantánea.