Red de conocimiento informático - Material del sitio web - Cómo utilizar los cursores de SQL Server (1)

Cómo utilizar los cursores de SQL Server (1)

Pero a menudo nos encontramos con situaciones en las que leemos registros uno por uno de un determinado conjunto de resultados. Entonces, ¿cómo solucionar este problema? Los cursores nos proporcionan una excelente solución. 1. Cursores y ventajas de los cursores En la base de datos, los cursores son un concepto muy importante. Los cursores proporcionan un medio flexible para operar con datos recuperados de una tabla. En esencia, los cursores son en realidad un mecanismo que puede extraer un registro a la vez de un conjunto de resultados que incluye varios registros de datos. Un cursor siempre está asociado con una instrucción de selección T_SQL porque el cursor consta del conjunto de resultados (que puede ser cero, uno o varios registros recuperados por la instrucción de selección asociada) y la posición del cursor en el conjunto de resultados que apunta a un registro específico. . Cuando decide procesar un conjunto de resultados, debe declarar un cursor que apunte al conjunto de resultados. Si alguna vez ha escrito un programa en C que procesa archivos, el cursor es como el identificador de archivo que obtiene cuando abre un archivo. Siempre que el archivo se abra correctamente, el identificador de archivo representa el archivo. Para los cursores, la lógica es la misma. Se puede ver que el cursor puede procesar el conjunto de resultados de la tabla básica de una manera similar a la de un programa tradicional que lee un archivo plano, presentando así los datos de la tabla al programa en forma de un archivo plano. Sabemos que los sistemas de administración de bases de datos relacionales están esencialmente orientados a conjuntos. En MS SQL SERVER, no existe una forma de expresión para describir un solo registro en una tabla, a menos que se use una cláusula donde para limitar solo un registro a seleccionar. Por lo tanto, debemos utilizar cursores para realizar el procesamiento de datos de registros individuales. Se puede ver que el cursor permite a la aplicación realizar las mismas o diferentes operaciones en cada fila del conjunto de resultados devuelto por la instrucción de consulta select, en lugar de realizar la misma operación en todo el conjunto de resultados a la vez, también proporciona la misma operación en todo el conjunto de resultados a la vez; capacidad de realizar la misma operación en los datos de la tabla según la posición del cursor. Además, es el cursor el que vincula el sistema de gestión de bases de datos orientado a colecciones y la programación orientada a filas, lo que permite que los dos datos. Métodos de procesamiento para comunicarse. 2. Tipos de cursor MS SQL SERVER admite tres tipos de cursores: cursores Transact_SQL, cursores de servidor API y cursores de cliente. (1) Cursor Transact_SQL El cursor Transact_SQL se define mediante la sintaxis DECLARE CURSOR y se utiliza principalmente en scripts, procedimientos almacenados y activadores de Transact_SQL. Los cursores Transact_SQL se utilizan principalmente en el servidor y se administran mediante declaraciones Transact_SQL enviadas desde el cliente al servidor o Transact_SQL en procesamiento por lotes, procedimientos almacenados y activadores. Los cursores Transact_SQL no admiten la recuperación de bloques o varias filas de datos. (2) Cursor API El cursor API admite el uso de funciones de cursor en OLE DB, ODBC y DB_library, que se utilizan principalmente en servidores. Cada vez que una aplicación cliente llama a una función de cursor API, el proveedor OLE DB de MS SQL SEVER, el controlador ODBC o la biblioteca de vínculos dinámicos (DLL) de DB_library pasarán estas solicitudes del cliente al servidor para procesar el cursor API. (3) Cursor del cliente El cursor del cliente se utiliza principalmente cuando se almacena en caché el conjunto de resultados en el cliente. En los cursores del cliente, hay un conjunto de resultados predeterminado que se utiliza para almacenar en caché todo el conjunto de resultados en la máquina cliente. Los cursores de cliente solo admiten cursores estáticos y no cursores dinámicos. Dado que los cursores de servidor no admiten todas las instrucciones o lotes de Transact-SQL, los cursores de cliente a menudo se utilizan sólo como complemento de los cursores de servidor. Porque en circunstancias normales, los cursores del servidor pueden admitir la mayoría de las operaciones del cursor. Debido a que los cursores API y los cursores Transact-SQL se utilizan en el lado del servidor, se denominan cursores de servidor, también llamados cursores de fondo, mientras que los cursores del lado del cliente se denominan cursores de front-end. En este capítulo nos centramos en los cursores del servidor (backend). seleccione recuento (id) de información seleccione * de información--Borrar todos los registros