Sammendrag: i denne opplæringen lærer du hvordan du bruker SQL Server-markøren til å behandle et resultatsett, en rad om gangen.
SQL fungerer basert på sett, f.eks. SELECT -uttrykk returnerer et sett med rader som kalles et resultatsett. Noen ganger kan det være lurt å behandle et datasett rad for rad. Dette er hvor markører spiller inn.
Hva er en databasemarkør
En databasemarkør er et objekt som muliggjør kryssing over radene i et resultatsett. Den lar deg behandle individuell rad returnert av et spørsmål.
SQL Server-markørens livssyklus
Dette er trinn for bruk av markøren:
Forklar først en markør.
Code language: SQL (Structured Query Language) (sql)
For å erklære en markør, angir du navnet etter DECLARE nøkkelordet med CURSOR datatypen og gir en SELECT uttalelse som definerer resultatsettet for markøren.
Deretter åpner du og fyller markøren ved å utføre SELECT uttalelse:
Code language: SQL (Structured Query Language) (sql)
Hent deretter en rad fra markøren til en eller flere variabler:
Code language: SQL (Structured Query Language) (sql)
SQL Server gir @@FETCHSTATUS -funksjonen som returnerer statusen til den siste markøren FETCH setning utført mot markøren; Hvis @@FETCHSTATUS returnerer 0, betyr det at FETCH uttalelsen var vellykket. Du kan bruke uttalelsen WHILE for å hente alle rader fra markøren som vist i følgende kode:
Code language: SQL (Structured Query Language) (sql)
Deretter lukker du markøren:
Code language: SQL (Structured Query Language) (sql)
Til slutt fordeler du markøren:
Code language: SQL (Structured Query Language) (sql)
SQL Server-markøreksempel
Vi bruker tabellen prodution.products fra eksempeldatabasen for å vise deg hvordan du bruker en markør:
Erklær først to variabler for å inneholde produktnavn og listepris, og en markør for å holde resultatet av et spørsmål som henter produktnavn og listepris fra production.products tabellen:
Deretter åpner du markøren:
Code language: SQL (Structured Query Language) (sql)
Hent deretter hver rad fra markøren og skriv ut produktnavnet og listeprisen:
Deretter lukker du markøren:
Code language: SQL (Structured Query Language) (sql)
Til slutt, plasser markøren for å frigjøre den.
Følgende kodebit setter alt sammen:
Her er delvis utdata:
I praksis vil du sjelden bruke markøren til å behandle et resultatsett rad for rad.
I denne veiledningen har du lært hvordan du bruker SQL Server-markøren til å behandle et resultatsett, hver rad om gangen.