Udostępnij za pośrednictwem


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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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