Rezumat: în acest tutorial, veți afla cum să utilizați cursorul SQL Server pentru a procesa un set de rezultate, un rând la rând.
SQL funcționează pe baza setului, de exemplu, instrucțiunea SELECT
returnează un set de rânduri care se numește set de rezultate. Cu toate acestea, uneori, poate doriți să procesați un set de date rând pe rând. Aici intră cursorii în joc.
Ce este un cursor de bază de date
Un cursor de bază de date este un obiect care permite traversarea pe rândurile unui set de rezultate. Vă permite să procesați rândul individual returnat de o interogare.
Ciclul de viață al cursorului SQL Server
Aceștia sunt pași pentru utilizarea unui cursor:
Mai întâi, declarați un cursor.
Code language: SQL (Structured Query Language) (sql)
Pentru a declara un cursor, specificați numele acestuia după cuvântul cheie DECLARE
cu tipul de date CURSOR
și furnizați un Instrucțiunea SELECT
care definește setul de rezultate pentru cursor.
Apoi, deschideți și completați cursorul executând SELECT
declarație:
Code language: SQL (Structured Query Language) (sql)
Apoi, preluați un rând din cursor într-una sau mai multe variabile:
Code language: SQL (Structured Query Language) (sql)
SQL Server oferă funcția @@FETCHSTATUS
care returnează starea ultimului cursor FETCH
instrucțiune executată împotriva cursorului; Dacă @@FETCHSTATUS
returnează 0, adică declarația FETCH
a avut succes. Puteți utiliza instrucțiunea WHILE
pentru a prelua toate rândurile de la cursor așa cum se arată în următorul cod:
Code language: SQL (Structured Query Language) (sql)
După aceea, închideți cursorul:
Code language: SQL (Structured Query Language) (sql)
În cele din urmă, alocați cursorul:
Code language: SQL (Structured Query Language) (sql)
Exemplu de cursor SQL Server
Vom folosi tabelul prodution.products
din baza de date eșantion pentru a vă arăta cum să utilizați un cursor:
Mai întâi, declarați două variabile pentru a menține numele produsului și prețul de listă și un cursor pentru a reține rezultatul unei interogări care preia numele produsului și prețul de listă din tabelul production.products
:
Apoi, deschideți cursorul:
Code language: SQL (Structured Query Language) (sql)
Apoi, preluați fiecare rând din cursor și tipăriți numele produsului și prețul de listă:
După aceea, închideți cursorul:
Code language: SQL (Structured Query Language) (sql)
În cele din urmă, alocați cursorul pentru al elibera.
Următoarele fragmente de cod pun totul împreună:
Iată rezultatul parțial:
În practică, veți folosi rar cursorul pentru a procesa un set de rezultate într-un mod rând cu rând.
În acest tutorial, ați învățat cum să utilizați cursorul SQL Server pentru a procesa un set de rezultate, fiecare rând la rând.