CURSOR SQL Server

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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *