Markörer är en struktur som i programmerbara versioner av Structured Query Language ( SQL ) som Sybase eller Microsoft SQL Server Transact - SQL . Definiera en markör för en utvald eller uppdatera SQL-uttryck på en eller flera tabeller . Markören har ett namn som du kan använda för att referera till , öppna och stänga markören eller hämta rader från markören set . Markörer används när varje rad i uppsättningen behöver bearbetning eller dess värden används i programvariabler . När en ny markör förklaras i slingan som behandlar varje rad av en markör , är den nya inre markören kapslad i gamla yttre markören . Instruktioner
1
Deklarera en markör för en enkel select-sats med följande T - SQL-syntax :
FÖRKLARA CURSOR
FOR SELECT fält1 , fält2 , field3
FRÅN
VAR field4 < = @ limitval
2
Öppna markören för bearbetning med denna T - SQL syntax :
oPEN
3 Fetch rader från den öppna markören för bearbetning , eftersom det är en read ( välj) markör . Deklarera variabler som krävs för att lagra värden för fälten i den aktuella markören raden . Den T- SQL-syntax för att hämta markören rader är som följer :
FETCH NÄSTA FRÅN INTO @ var_fld1 , @ var_fld2 , @ var_fld3
medan @ @ fetch_status == 0
börja
--- < process markörens rad här >
FETCH NEXT FROM INTO @ var_fld1 , @ var_fld2 , @ var_fld3
slutet
4
Lägg deklarationen och utförandet av andra eller inre markören i fetch slinga av föregående eller yttre markör som följer:
- yttre markören hämta loop
medan @ @ fetch_status == 0
börja
< process aktuella raden av yttre markören här >
- Dags att deklarera den inre markören - häckande börjar
FÖRKLARA inner_cursor CURSOR
FOR SELECT X , Y , Z , ....
FROM Tabell1 , Tabell2 , ...
VAR
OPEN inner_cursor
FETCH NEXT FROM inner_cursor INTO @ varX , @ variera , @ VARZ ...
medan @ @ fetch_status == 0
börja - inner markören hämta
loop
- här>
- få nästa rad
hÄMTA NÄSTA FRÅN inner_cursor INTO @ varX , @ variera , @ VARZ ...
slut - inner markören hämta slinga
slut - yttre markören hämta slinga