Hvordan bruke nestede Pekere
Pekere er en struktur gitt i programmerbare versjoner av Structured Query Language (SQL) som Sybase eller Microsoft SQL Server Transact-SQL. Definer en markør for en utvalgt eller oppdatere SQL-setning på en eller flere tabeller. Markøren har et navn som du kan bruke til å referere til, åpne og lukke markøren eller hente rader fra markøren settet. Pekere brukes når hver rad i settet trenger behandling eller dens verdier er brukt i programmet variabler. Når en ny markør er deklarert i loop som behandler hver rad med en markør, er den nye indre markøren nestet inne i den gamle ytre markøren.
Bruksanvisning
1 Erklære en markør for en enkel velger setning ved hjelp av følgende T-SQL syntaks:
ERKLÆRER <pekernavn> CURSOR
FOR SELECT field1, field2, field3
FROM <table-name>
HVOR field4 & lt; = @limitval
2 Åpne markøren for behandling ved hjelp av denne T-SQL syntaks:
OPEN <pekernavn>
3 Hente rader fra den åpne linjen for behandling, siden det er en lese (velg) markøren. Erklærer variablene som kreves for å lagre verdier av feltene i den gjeldende markør rad. Den T-SQL syntax for å hente markøren radene er som følger:
HENT NESTE FRA <pekernavn> INTO @ var_fld1, @ var_fld2, @ var_fld3
mens @@ fetch_status == 0
begynne
--- <Prosessen markøren rad her>
HENT NESTE FRA <pekernavn> INTO @ var_fld1, @ var_fld2, @ var_fld3
slutt
4 Legg erklæringen og gjennomføring av andre eller indre markøren i hente løkke av forrige eller ytre markør som følger:
- Ytre markøren hente sløyfe
mens @@ fetch_status == 0
begynne
< process current row of outer cursor here >
- På tide å erklære den indre markøren - hekkende begynner
ERKLÆRER inner_cursor CURSOR
FOR SELECT X, Y, Z, ....
Fra Tabell1, table2, ...
HVOR <betingelse>
OPEN inner_cursor
HENT NESTE FRA inner_cursor TIL @varX, @varY, @varZ ...
mens @@ fetch_status == 0
begynner - indre markøren hente sløyfe
-- <process current inner_cursor row here>
- Få neste p
HENT NESTE FRA inner_cursor TIL @varX, @varY, @varZ ...
end - indre markøren hente sløyfe
end - ytre markøren hente sløyfe
Hint
- Det anbefales å gjennomføre nestede pekere bare når det er absolutt nødvendig. De er dynamiske SQL og dyrt og taxing for SQL Server for å behandle. Unngå bruk av for mange midlertidige tabeller eller sette inn uttalelser mens du bruker nøstede pekere. Bruk funksjoner og lagrer prosedyrer for å sende parametre og dele data når det er mulig å eliminere behovet for pekere.