Cómo obtener los datos de sql desde una sola fila

UN cursor permite a SQL para recuperar (o actualizar o eliminar) una sola fila a la vez para que pueda utilizar SQL en combinación con una aplicación escrita en cualquiera de los lenguajes populares. El procesamiento de los cursores es un proceso de tres pasos:

  1. los DECLARE CURSOR sentencia especifica el nombre y el alcance del cursor.

  2. los ABIERTO Declaración recoge las filas de la tabla seleccionada por el DECLARE CURSOR consultar expresión.

  3. los HA PODIDO RECUPERAR declaración realidad recupera los datos.

El cursor puede apuntar a una de las filas en el alcance del cursor, o a la posición justo antes de la primera fila en el ámbito de aplicación, o a la posición justo después de la última fila en el ámbito de aplicación, o para el espacio vacío entre dos filas. Puede especificar dónde apunta el cursor con la cláusula de orientación en el HA PODIDO RECUPERAR declaración.

Sintaxis

La sintaxis de la HA PODIDO RECUPERAR declaración es

FETCH [[orientación] FROM] cursor-nameINTO objetivo de especificación [, target-especificación] ... -

Siete opciones de orientación están disponibles:

  • SIGUIENTE

  • ANTERIOR

  • PRIMERO

    Video: Consulta SQL Server

  • ÚLTIMO

  • ABSOLUTO

  • RELATIVO

La opción por defecto es SIGUIENTE, que, por cierto, fue el solamente orientación disponible en versiones de SQL antes de SQL-92. los SIGUIENTE orientación mueve el cursor desde donde quiera que esté a la siguiente fila del conjunto especificado por la expresión de consulta. Eso significa que si el cursor está situado antes del primer registro, se mueve al primer registro.

Si apunta a grabar norte, se mueve para grabar norte+1. Si el cursor apunta al último registro del conjunto, se mueve más allá de ese registro y notificación de una condición de ausencia de datos se devuelve en el SQLSTATE variable del sistema.

Las especificaciones de los objetivos son o variables del sistema principal o parámetros, dependiendo de si SQL embebido o un lenguaje de módulo, respectivamente, está utilizando el cursor. El número y tipo de las especificaciones de destino deben coincidir con el número y los tipos de las columnas que especifica la expresión de consulta en el DECLARE CURSOR.

Así, en el caso de SQL incorporado, al recuperar una lista de cinco valores de una fila de una tabla, cinco variables host debe estar allí para recibir esos valores, y deben ser el tipo correcto.

La orientación de un cursor desplazable

Debido a que el cursor de SQL es desplazable, tiene otras opciones además SIGUIENTE. Si especifica ANTERIOR, El puntero se mueve a la fila inmediatamente anterior a su ubicación actual. Si especifica PRIMERO, que apunta al primer registro del conjunto, y si se especifica ÚLTIMO, apunta al último registro.

Video: SQL server base de datos distribuida en 2 ordenadores

Cuando se utiliza la ABSOLUTO y RELATIVO orientación, debe especificar un valor entero, también. Por ejemplo, FETCH ABSOLUTO 7 mueve el cursor a la séptima fila desde el principio de la serie. FETCH RELATIVA 7 mueve el cursor siete filas más allá de su posición actual. FETCH relativa 0 no se mueve el cursor.

FETCH RELATIVE 1 tiene el mismo efecto que FETCH SIGUIENTE. FETCH RELATIVE -1 tiene el mismo efecto que FETCH PREVIA. FETCH ABSOLUTO 1 le da el primer registro del conjunto, FETCH ABSOLUTO 2 le da el segundo registro del conjunto, y así sucesivamente.

Similar, FETCH ABSOLUTO -1 le da el último registro del conjunto, FETCH ABSOLUTO -2 le da el siguiente al último registro, y así sucesivamente. Especificación FETCH 0 ABSOLUTO devuelve el código de condición de excepción sin datos, como la voluntad FETCH ABSOLUTO 17 Si sólo 16 filas están en el conjunto. HA PODIDO RECUPERAR le da el registro especificado por la especificación de valor simple.

DELETE y UPDATE de posición

Puede llevar a cabo operaciones de eliminación y actualización en la fila a la que un cursor que está apuntando. La sintaxis de la BORRAR declaración es el siguiente:

CANCELACIÓN de nombre-tabla WHERE CURRENT OF nombre-cursor -

Si el cursor no apunta a una fila, la instrucción devuelve una condición de error, y no se produce la eliminación.

La sintaxis de la ACTUALIZAR declaración es el siguiente:

ACTUALIZACIÓN mesa nameset columna nombre = valor [, columna nombre = valor] ... WHERE CURRENT OF nombre-cursor -

El valor de colocar en cada columna especificado debe ser una expresión de valor o la palabra clave DEFECTO. Si una operación de actualización posicionado intentado devuelve un error, no se realiza la actualización.

Artículos Relacionados