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.