CURSOR_STATUS (Transact-SQL)
wartość skalarnafunkcja umożliwiający wywołującego procedura składowana do określenia, czy procedura zwróciła kursor i zestaw wyników dla danego parametru.
Składnia
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argumenty
"lokalnego'
Określa, że stała , która wskazuje źródło kursor jest nazwą lokalnego kursor .'cursor_name'
Jest to nazwa kursor.Nazwa kursor muszą być zgodne z zasadami identyfikatorów."global'
Określa, że stała , która wskazuje źródło kursor jest nazwa globalnego kursor ."zmiennej'
Określa, że stała , która wskazuje źródło kursor jest zmiennej lokalnej.'cursor_variable'
Jest nazwą zmiennej kursor .Zmienna kursor muszą być zdefiniowane przy użyciu cursor typu danych.
Zwracane typy
smallint
Zwracanie wartości |
Nazwa kursora |
Zmienna kursora |
---|---|---|
1 |
zestaw wyników kursor ma co najmniej jeden wiersz. Dla niewrażliwe i kursorów zestawu kluczy, zestaw wyników ma co najmniej jeden wiersz. W przypadku dynamiczne kursory zestaw wyników może zawierać zero, jeden lub więcej wierszy. |
kursor przydzielone do tej zmiennej jest otwarty. Dla niewrażliwe i kursorów zestawu kluczy, zestaw wyników ma co najmniej jeden wiersz. W przypadku dynamiczne kursory zestaw wyników może zawierać zero, jeden lub więcej wierszy. |
0 |
zestaw wyników kursor jest empty.* |
kursor przydzielone do tej zmiennej jest otwarty, ale zestaw wyników jest ostatecznie empty.* |
-1 |
kursor jest zamknięty. |
kursor przydzielone do tej zmiennej jest zamknięty. |
-2 |
Nie dotyczy. |
Może być: Nie kursor został przypisany do tej zmiennej wyjścia przez uprzednio wywołana procedury. kursor został przypisany do tej zmiennej wyjścia przez uprzednio wywołana procedury, ale był w stanie zamknięty po zakończeniu procedury.Dlatego kursor jest dealokowane i nie są zwracane do wywołania procedury. Nie ma żadnych kursor przypisana do zmiennej zadeklarowanej kursor . |
-3 |
kursor o podanej nazwie nie istnieje. |
Zmienna kursor o podanej nazwie nie istnieje lub jeśli istnieje nie jeszcze posiada ona kursor przydzielonej jej. |
* Dynamiczne kursory nigdy nie zwraca wynik.
Przykłady
W poniższym przykładzie użyto CURSOR_STATUS funkcja Pokaż stan kursor , przed i po otwarciu i zamknięciu.
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
Oto zestaw wyników.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1
Zobacz także