SQL Server-CURSOR (Dansk)

Oversigt: I denne vejledning lærer du, hvordan du bruger SQL Server-markøren til at behandle et resultatsæt, en række ad gangen.

SQL fungerer baseret på sæt, fx SELECT sætning returnerer et sæt rækker, der kaldes et resultatsæt. Men nogle gange vil du måske behandle et datasæt række for række. Det er her, markører spiller ind.

Hvad er en databasemarkør

En databasemarkør er et objekt, der muliggør gennemkørsel gennem rækkerne i et resultatsæt. Det giver dig mulighed for at behandle individuel række returneret af en forespørgsel.

SQL Server-markørens livscyklus

Dette er trin til brug af en markør:

Angiv først en markør.

Code language: SQL (Structured Query Language) (sql)

For at erklære en markør skal du angive dens navn efter DECLARE nøgleordet med CURSOR datatypen og angive en SELECT udsagn, der definerer resultatsættet til markøren.

Derefter skal du åbne og udfylde markøren ved at udføre SELECT udsagn:

Code language: SQL (Structured Query Language) (sql)

Hent derefter en række fra markøren til en eller flere variabler:

Code language: SQL (Structured Query Language) (sql)

SQL Server giver @@FETCHSTATUS -funktionen, der returnerer status for den sidste markør FETCH -sætning, der udføres mod markøren; Hvis @@FETCHSTATUS returnerer 0, betyder det, at FETCH -sætningen var vellykket. Du kan bruge udsagnet WHILE til at hente alle rækker fra markøren som vist i følgende kode:

Code language: SQL (Structured Query Language) (sql)

Luk derefter markøren:

Code language: SQL (Structured Query Language) (sql)

Til sidst skal du placere markøren:

Code language: SQL (Structured Query Language) (sql)

SQL Server-markøreksempel

Vi bruger tabellen prodution.products fra eksempeldatabasen til at vise dig, hvordan du bruger en markør:

Angiv først to variabler for at indeholde produktnavn og listepris, og en markør, der indeholder resultatet af en forespørgsel, der henter produktnavn og listepris fra production.products -tabellen:

Åbn derefter markøren:

Code language: SQL (Structured Query Language) (sql)

Hent derefter hver række fra markøren og udskriv produktnavnet og listeprisen:

Luk derefter markøren:

Code language: SQL (Structured Query Language) (sql)

Til sidst skal du placere markøren for at frigive den.

Følgende kodestykker sætter alt sammen:

Her er deloutputtet:

I praksis bruger du sjældent markøren til at behandle et resultatsæt række for række.

I denne vejledning har du lært, hvordan du bruger SQL Server-markøren til at behandle et resultatsæt, hver række ad gangen.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *