Udostępnij za pośrednictwem


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.

Topic link iconKonwencje składni języka Transact-SQL

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