Podsumowanie: w tym samouczku nauczysz się, jak używać kursora SQL Server do przetwarzania zestawu wyników, po jednym wierszu na raz.
SQL działa w oparciu o zbiór, np. SELECT
instrukcja zwraca zestaw wierszy, który jest nazywany zbiorem wyników. Jednak czasami możesz chcieć przetworzyć zestaw danych wiersz po wierszu. Tutaj do gry wchodzą kursory.
Co to jest kursor bazy danych
Kursor bazy danych to obiekt, który umożliwia przechodzenie po wierszach zestawu wyników. Umożliwia przetwarzanie pojedynczych wierszy zwróconych przez zapytanie.
Cykl życia kursora programu SQL Server
Oto kroki korzystania z kursora:
Najpierw zadeklaruj kursor.
Code language: SQL (Structured Query Language) (sql)
Aby zadeklarować kursor, należy określić jego nazwę po słowie kluczowym DECLARE
z typem danych CURSOR
i podać Instrukcja SELECT
, która definiuje zestaw wyników dla kursora.
Następnie otwórz i zapełnij kursor, wykonując SELECT
instrukcja:
Code language: SQL (Structured Query Language) (sql)
Następnie pobierz wiersz z kursora do jednej lub więcej zmiennych:
Code language: SQL (Structured Query Language) (sql)
SQL Server udostępnia funkcję @@FETCHSTATUS
, która zwraca stan ostatniego kursora FETCH
instrukcja wykonywana względem kursora; Jeśli @@FETCHSTATUS
zwraca 0, co oznacza, że instrukcja FETCH
zakończyła się pomyślnie. Możesz użyć instrukcji WHILE
, aby pobrać wszystkie wiersze z kursora, jak pokazano w poniższym kodzie:
Code language: SQL (Structured Query Language) (sql)
Następnie zamknij kursor:
Code language: SQL (Structured Query Language) (sql)
Na koniec cofnij przydział kursora:
Code language: SQL (Structured Query Language) (sql)
Przykład kursora SQL Server
Użyjemy tabeli prodution.products
z przykładowej bazy danych, aby pokazać, jak używać kursora:
Najpierw zadeklaruj dwie zmienne, aby przechowywać nazwę produktu i cenę katalogową oraz kursor do zatrzymania wyniku zapytania pobierającego nazwę produktu i cenę katalogową z tabeli production.products
:
Następnie otwórz kursor:
Code language: SQL (Structured Query Language) (sql)
Następnie pobierz każdy wiersz z kursora i wydrukuj nazwę produktu oraz cenę katalogową:
Następnie zamknij kursor:
Code language: SQL (Structured Query Language) (sql)
Na koniec zwolnij przydział kursora, aby go zwolnić.
Poniższe fragmenty kodu składają wszystko razem:
Oto częściowe dane wyjściowe:
W praktyce rzadko będziesz używać kursora do przetwarzania zestawu wyników wiersz po wierszu.
W tym samouczku nauczyłeś się, jak używać kursora programu SQL Server do przetwarzania zestawu wyników, każdy wiersz na raz.