cursori sono una struttura fornita nelle versioni programmabili di Structured Query Language ( SQL ), come Sybase o Microsoft SQL Server Transact - SQL . Definire un cursore per un'istruzione SELECT o l'aggiornamento di SQL su una o più tabelle . Il cursore ha un nome che può essere utilizzato per fare riferimento a , aprire e chiudere il cursore o recuperare le righe dal set di cursore . I cursori sono utilizzati quando ogni riga del set di esigenze di elaborazione o di suoi valori sono utilizzati in variabili di programma . Quando un nuovo cursore viene dichiarato nel ciclo che elabora ogni riga di un cursore , il nuovo cursore interno è nidificato all'interno del vecchio cursore esterno . Istruzioni
1
dichiara un cursore per una semplice istruzione SELECT utilizzando la seguente sintassi T - SQL :
DECLARE CURSOR
per Select campo1 , campo2 , campo3
DA
DOVE field4 < = @ limitval
2
Aprire il cursore per la lavorazione con questo T - SQL sintassi:
aPERTO
3 recuperare le righe dal cursore aperto per l'elaborazione, in quanto si tratta di una lettura ( select ) cursore . Dichiarare le variabili necessarie per memorizzare i valori dei campi nella riga corrente del cursore . La sintassi T - SQL per il recupero delle righe del cursore è il seguente :
ANDARE A PRENDERE DOPO DA INTO @ var_fld1 , var_fld2 @ , @ var_fld3
mentre @ @ FETCH_STATUS == 0
iniziare
--- < attuale processo di fila cursore qui >
ANDARE A PRENDERE DOPO da INTO @ var_fld1 , var_fld2 @ , @ var_fld3
fine
4
Aggiungi la dichiarazione e l'esecuzione del secondo o interno cursore nel prendere ciclo del cursore precedente o esterno come segue :
- cursore esterno prendere ciclo
mentre @ @ FETCH_STATUS == 0
iniziare
< processo riga corrente del cursore esterno qui >
- Tempo di dichiarare l' interno del cursore - nidificazione inizia
DECLARE CURSOR inner_cursor
PER SELEZIONARE X , Y , Z , ....
FROM tabella1 , tabella2 , ...
DOVE
APERTO inner_cursor
ANDARE A PRENDERE DOPO da inner_cursor INTO @ varX , @ variare , @ VARZ ...
mentre @ @ FETCH_STATUS == 0
iniziare - cursore interno recuperare ciclo
-
- ottenere il ferro successivo
ANDARE A PRENDERE DOPO DA inner_cursor INTO @ varX , @ variare , @ VARZ ...
fine - cursore interno recuperare ciclo
fine - cursore esterno recuperare cappio
< br >