“Conocimientos software>Software de base de datos

Cómo utilizar los cursores anidados

2011/8/8
Los cursores son una estructura prevista en versiones programables de Structured Query Language ( SQL) como Sybase o de Microsoft SQL Server Transact -SQL. Define un cursor para una selección o actualización de SQL en una o más tablas. El cursor tiene un nombre que puede utilizar para hacer referencia a , abrir y cerrar el cursor o captar filas desde el conjunto de cursor. Los cursores se utilizan cuando cada fila del conjunto de las necesidades de procesamiento o de sus valores se utilizan en las variables del programa . Cuando un nuevo cursor se declara en el bucle que procesa cada fila de un cursor, el nuevo cursor interno se desliza por el interior del viejo cursor exterior . Instrucciones
1

Declarar un cursor para una sentencia SELECT simple con la siguiente sintaxis T -SQL :

DECLARE CURSOR

PARA SELECT campo1 , campo2 , field3

dE

DONDE campo4 < = @ limitval
2

Abra el cursor para el procesamiento de usar este T -SQL sintaxis:

OPEN
3

captar filas desde el cursor abierto para el procesamiento, ya que es una lectura ( select) cursor. Declarar las variables necesarias para almacenar los valores de los campos de la fila actual del cursor. La sintaxis T -SQL para captar filas del cursor es el siguiente :

TRAER DESPUÉS DE EN var_fld1 @ , @ var_fld2 , @ var_fld3

mientras que @ @ fetch_status == 0

comenzar

--- < proceso fila actual del cursor aquí>

TRAER DESPUÉS DE EN var_fld1 @ , @ var_fld2 , @ var_fld3

final
4

Agregar la declaración y ejecución de la segunda o interior cursor en la zona de alcance de bucle del cursor anterior o exterior de la siguiente manera :

- cursor exterior buscar loop

mientras que @ @ fetch_status == 0

comenzar

< proceso actual fila de cursor externa aquí>

- Es hora de declarar el interior del cursor - anidación comienza

DECLARE cURSOR inner_cursor

PARA SELECCIONAR X , Y, Z, ....

FROM tabla1 , tabla2 , ...

DONDE

OPEN inner_cursor

TRAER DESPUÉS DE inner_cursor EN varX @ , @ varían @ Varz ...

mientras que @ @ fetch_status == 0

empezar - cursor interno traiga loop

-

- obtiene la fila siguiente

TRAER DESPUÉS DE inner_cursor EN varX @ , @ varían @ Varz ...

final - cursor interno recoger loop

final - cursor exterior traiga loop


Software de base de datos
Cómo insertar un subformulario en un formulario en Access
Cómo cambiar el nombre de columna de DB2
Net Sharepoint Formación
¿Qué significa decir que una base de datos muestra tanto la entidad y la integridad referencial
Cómo crear una consulta en SQL Delete Acceso
Cómo utilizar una variable compartida en un informe de Crystal
Cómo escribir un Inventory Planner Resume
Cómo crear un panel de control en Access 2003
Conocimientos Informáticos © http://www.ordenador.online