CURSOR_STATUS (języka Transact-SQL)
Funkcja skalarna umożliwiający wywołującego procedura przechowywana do ustalenia, niezależnie od tego, czy procedura zwróciła zestaw kursor i wyników dla danego parametru.
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argumenty
"lokalna"
Określa stała Określa urządzenie źródłowe kursor jest nazwa lokalnego kursora.'cursor_name'
Nazywa się kursor.Nazwa kursor muszą być zgodne z zasadami dla identyfikatorów."globalne"
Określa stała Określa urządzenie źródłowe kursor jest nazwa globalnego kursora."Zmienna"
Określa stała Określa urządzenie źródłowe kursor jest zmiennej lokalnej.'cursor_variable'
Jest nazwą zmiennej kursor.Zmienna kursor muszą zostać zdefiniowane przy użyciu opcji cursor Typ danych.
Zwracane typy
smallint
Zwracanie wartości |
Nazwa kursor |
Zmienna kursor |
---|---|---|
1 |
Zestaw wyników kursor ma co najmniej jeden wiersz. Dla niewrażliwe i kursorów zestawu kluczy, zestaw wyników zawiera co najmniej jeden wiersz. Dynamiczne kursory zestaw wyników może mieć wartość zero, jeden lub więcej wierszy. |
Kursor do tej zmiennej jest otwarty. Dla niewrażliwe i kursorów zestawu kluczy, zestaw wyników zawiera co najmniej jeden wiersz. Dynamiczne kursory zestaw wyników może mieć wartość zero, jeden lub więcej wierszy. |
0 |
Zestaw wyników kursor jest empty.* |
Kursor do tej zmiennej jest otwarty, ale zestaw wyników jest pewno empty.* |
-1 |
Kursor jest zamknięty. |
Kursor do tej zmiennej jest zamknięty. |
-2 |
Nie dotyczy. |
Może być: Kursor nie został przypisany do tej zmiennej wyjście wcześniej nazywane procedury. Kursor został przypisany do tej zmiennej wyjście wcześniej nazywane procedurą, ale był w stanie zamkniętym po zakończeniu procedury.Dlatego kursor jest dealokowane i nie są zwracane do wywołania procedury. Nie ma żadnych kursor przypisany do zmiennej zadeklarowanej kursora. |
-3 |
Kursor o określonej nazwie nie istnieje. |
Zmienna kursor o określonej nazwie nie istnieje lub jeśli istnieje on nie jeszcze miał kursora, przydzielone do niego. |
* Dynamiczne kursory nigdy nie zwraca wynik.
Przykłady
W poniższym przykładzie użyto CURSOR_STATUS Funkcja Pokaż stan kursor przed i po zakończeniu otwarte i zamknięte.
CREATE TABLE #TMP
(
ii int
)
GO
INSERT INTO #TMP(ii) VALUES(1)
INSERT INTO #TMP(ii) VALUES(2)
INSERT INTO #TMP(ii) VALUES(3)
GO
--Create a cursor.
DECLARE cur CURSOR
FOR SELECT * FROM #TMP
--Display the status of the cursor before and after opening
--closing the cursor.
SELECT CURSOR_STATUS('global','cur') AS 'After declare'
OPEN cur
SELECT CURSOR_STATUS('global','cur') AS 'After Open'
CLOSE cur
SELECT CURSOR_STATUS('global','cur') AS 'After Close'
--Remove the cursor.
DEALLOCATE cur
--Drop the table.
DROP TABLE #TMP
Here is the result set.
Po zadeklarować
---------------
-1
Po Otwórz
----------
1
Po Zamknij
-----------
-1
See Also