KURZOR serveru SQL Server

Shrnutí: v tomto výukovém programu se naučíte, jak používat kurzor serveru SQL Server ke zpracování sady výsledků po jednom řádku.

SQL funguje na základě sady, např. příkaz SELECT vrací sadu řádků, která se nazývá sada výsledků. Někdy však můžete chtít zpracovat datovou sadu po řádcích. Zde vstupují do hry kurzory.

Co je to databázový kurzor

Databázový kurzor je objekt, který umožňuje procházení řádky sady výsledků. Umožňuje vám zpracovat jednotlivé řádky vrácené dotazem.

Životní cyklus kurzoru serveru SQL Server

Toto jsou kroky pro použití kurzoru:

Nejprve deklarujte kurzor.

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

Chcete-li deklarovat kurzor, zadejte jeho název za klíčové slovo DECLARE s datovým typem CURSOR a zadejte SELECT příkaz, který definuje sadu výsledků pro kurzor.

Dále otevřete a naplňte kurzor spuštěním SELECT statement:

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

Poté načtěte řádek z kurzoru do jedné nebo více proměnných:

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

SQL Server poskytuje @@FETCHSTATUS funkci, která vrací stav posledního příkazu FETCH provedeného proti kurzoru; Pokud @@FETCHSTATUS vrátí 0, znamená to, že prohlášení FETCH bylo úspěšné. Pomocí příkazu WHILE můžete z kurzoru načíst všechny řádky, jak je znázorněno v následujícím kódu:

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

Poté zavřete kurzor:

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

Nakonec uvolněte kurzor:

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

Příklad kurzoru serveru SQL Server

Pomocí ukázkové databáze prodution.products vám ukážeme, jak používat kurzor:

Nejprve deklarujte dvě proměnné, které budou obsahovat název produktu a katalogovou cenu, a kurzor, který udrží výsledek dotazu, který načte název produktu a ceníkovou cenu z production.products tabulky:

Dále otevřete kurzor:

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

Poté načtěte každý řádek z kurzoru a vytiskněte název produktu a ceníkovou cenu:

Poté zavřete kurzor:

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

Nakonec uvolněte kurzor a uvolněte jej.

Následující fragmenty kódu dávají vše dohromady:

Zde je částečný výstup:

V praxi zřídka použijete kurzor ke zpracování sady výsledků po řádcích.

V tomto výukovém programu jste se naučili používat kurzor SQL Server ke zpracování sady výsledků po jednotlivých řádcích.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *