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.