Hvordan skrive Pekere i SQL

Normalt SQL (Structured Query Language) forespørsler jobbe med hele sett med data. Men det er tider da det kan være best eller nødvendig å arbeide med data én rad om gangen. For disse omstendighetene, pekere er det beste alternativet. De tillater en operasjon som skal utføres på hver rad av et datasett, en om gangen. For eksempel, pekere er den enkleste måten å bevege seg gjennom et helt sett med data og bruke en prosedyre for hver rad i settet. Men kommer dette til en kostnad: pekere er generelt mye tregere enn andre SQL operasjoner.

Bruksanvisning

1 Skriv inn følgende kommando i SQL Server-konsollen til å erklære markøren:

ERKLÆRER cursor1 CURSOR

2 Gi en SELECT-setning som henter dataene markøren fungerer på:

TIL

VELG LAST_NAME

Fra ansatte

FOR OPPDATERING AV last_name

Dette vil hente en liste over last_names fra en ansatt bord. Den angir også at du skal oppdatere last_name som du går gjennom markørens data.

3 Åpne markøren ved å skrive følgende:

OPEN cursor1

4 Begynn itera gjennom radene ved å skrive følgende:

HENT NESTE FRA cursor1

INTO @LASTNAME

MENS @@ FETCH_STATUS = 0

BEGYNNE

5 Oppdater etternavn ved å skrive følgende:

EXEC ØVRE (@LASTNAME)

Dette vil sette etternavn i gjeldende rad, så det er med store bokstaver.

6 Hente en annen rad før du avslutter mens loop begynt i trinn 4:

HENT NESTE FRA cursor1

INTO @LASTNAME

SLUTT

7 Lukk markøren og slipper sitt navn slik at den kan brukes på nytt om nødvendig:

CLOSE cursor1

DEALLOCATE cursor1

Hint

  • Denne opplæringen bruker Microsoft SQL Server. Syntaksen kan endre seg veldig lett for andre implementeringer av SQL, for eksempel MySQL.
  • Markører er veldig treg i forhold til andre virksomheter i SQL, så de bør bare brukes der det er nødvendig.