Udostępnij za pośrednictwem


sp_describe_cursor (języka Transact-SQL)

Raporty atrybuty serwera kursor.

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

Składnia

sp_describe_cursor [ @cursor_return = ] output_cursor_variable OUTPUT 
     { [ , [ @cursor_source = ] N'local'
    , [ @cursor_identity = ] N'local_cursor_name' ] 
   | [ , [ @cursor_source = ] N'global'
    , [ @cursor_identity = ] N'global_cursor_name' ] 
   | [ , [ @cursor_source = ] N'variable'
     , [ @cursor_identity = ] N'input_cursor_variable' ] 
     } 
[;]

Argumenty

  • [ @cursor_return= ] output_cursor_variable OUTPUT
    Jest nazwą zmiennej zadeklarowanej kursor do odbierania danych wyjściowych kursor .output_cursor_variablejest cursor, bez domyślnego i musi być skojarzone z dowolnym kursory w czas sp_describe_cursor jest nazywany.kursor , zwracany jest przewijana, dynamiczne, tylko do odczytu kursor.

  • [ @cursor_source= ] { N'local " | N'global " | N'variable' }
    Określa, czy kursor dla jest określona przy użyciu nazwy lokalnego kursor, globalne kursorlub zmiennej kursor .Parametr jest nvarchar(30).

  • [ @cursor_identity= ] N'local_cursor_name' ]
    Jest to nazwa kursor utworzone przez DECLARE CURSOR instrukcja którego albo lokalne słowo kluczowe lub który ustawiana domyślnie z lokalnego.local_cursor_nameis nvarchar(128).

  • [ @cursor_identity= ] N'global_cursor_name' ]
    Jest to nazwa kursor utworzone przez DECLARE CURSOR instrukcja albo ma GLOBALNYCH słowo kluczowe lub który pobierana domyślnie szablon GLOBALNY.global_cursor_nameis nvarchar(128).

    global_cursor_namemożna także nazwa serwera API kursor otwarcia przez aplikację ODBC następnie o nazwie wywołując SQLSetCursorName.

  • [ @cursor_identity= ] N'input_cursor_variable' ]
    Jest nazwą zmiennej kursor skojarzonych z otwartych kursor.input_cursor_variableis nvarchar(128).

Wartości kodów powrotnych

Brak

Kursory zwrócone

sp_describe_cursorhermetyzuje jego zestaw wyników w Transact-SQL cursor parametru wyjściowego.Dzięki temu Transact-SQL partii, procedur przechowywanych i wyzwalaczy do pracy z jednego wiersza danych wyjściowych w czas.To oznacza, że procedura nie może być wywoływana bezpośrednio z funkcji API bazy danych.cursor Parametr wyjściowy musi być powiązana ze zmienną program, ale baza danych API obsługuje powiązanie cursor Parametry lub zmienne.

W poniższej tabela przedstawiono format kursor jest zwracana za pomocą sp_describe_cursor.Format kursor jest taki sam, jak format zwracane przy użyciu sp_cursor_list.

Nazwa kolumny

Typ danych

Opis

reference_name

sysname

Nazwa używana do odwoływania się do kursor.Jeśli odwołanie do kursor do nazwy określonej na instrukcjaDECLARE CURSOR, Nazwa odwołania jest taka sama jak nazwa kursor .Jeśli odwołanie do kursor za pośrednictwem zmiennej, nazwę odwołania jest nazwa zmiennej.

cursor_name

sysname

Nazwa kursor z instrukcjaDECLARE CURSOR.W SQL Server, jeśli kursor został utworzony przez ustawienie zmiennej kursor kursor cursor_name zwraca nazwę zmiennej kursor .W starszych wersjach SQL Server, tej kolumna wyjściowej zwraca nazwę wygenerowane przez system.

cursor_scope

tinyint

1 = LOKALNY

2 = GLOBALNE

status

int

Te same wartości jak zgłoszonych przez system CURSOR_STATUS funkcja:

1 = kursor , do których odwołuje się przez kursor nazwy lub zmienna jest otwarty.Jeśli kursor znajduje się wielkość liter, statyczne lub zestawu kluczy, posiada co najmniej jeden wiersz.Jeśli kursor jest dynamiczny, zestaw wyników ma zero lub więcej wierszy.

0 = kursor , do których odwołuje się przez kursor nazwy lub zmienna jest otwarte, ale nie wiersze.Dynamiczne kursory nigdy nie zwraca tę wartość.

-1 = kursor , do których odwołuje się przez kursor nazwy lub zmienna jest zamknięty.

-2 = Dotyczy tylko do zmiennych kursor .Nie ma żadnych kursor przypisana do zmiennej.Ewentualnie parametr wyjściowy przypisana do zmiennej kursor , ale procedura składowana zamknięte kursor przed zwróceniem.

-3 = kursor lub kursor zmienna o określonej nazwie nie istnieje lub zmiennej kursor nie miał kursor przydzielonej jej.

model

tinyint

1 = Insensitive (lub statyczne)

2 = Zestawu kluczy

3 = Dynamic

4 = Przewiń do przodu

concurrency

tinyint

1 = Tylko do odczytu

2 = Blokada przewijania

3 = Optimistic

scrollable

tinyint

0 = Tylko do przodu

1 = Przewijany

open_status

tinyint

0 = Zamknięte

1 = Otwórz

cursor_rows

decimal(10,0)

Liczba kwalifikujących się wierszy w zestaw wyników.Aby uzyskać więcej informacji, zobacz CURSOR_ROWS @@ (Transact-SQL).

fetch_status

smallint

Stan pobierania ostatniej na tego kursor.Aby uzyskać więcej informacji, zobacz FETCH_STATUS @@ (Transact-SQL).

0 = Pomyślne pobrania.

-1 = Pobrania nie powiodło się lub jest poza granice kursor.

-2 = Żądana Brak wierszy.

-9 = Nastąpił nie pobierania na kursor.

column_count

smallint

Liczba kolumn w kursor zestaw wyników.

row_count

decimal(10,0)

Liczba wierszy dotyczy ostatniej operacji na kursor.Aby uzyskać więcej informacji, zobacz @@ ROWCOUNT (Transact-SQL).

last_operation

tinyint

Ostatniej operacji wykonywanej na kursor:

0 = Nie zostały wykonane operacje na kursor.

1 = OTWÓRZ

2 = POBRANIA

3 = WSTAW

4 = AKTUALIZACJI

5 = DELETE

6 = ZAMKNIJ

7 = DEALLOCATE

cursor_handle

int

Unikatową wartość kursor w obrębie zakres serwera.

Uwagi

sp_describe_cursoropisuje atrybuty, które są globalne serwera kursor, takie jak zdolność do przewijania i aktualizacji.Użycie sp_describe_cursor_columns opis atrybutów zestaw wyników zwrócone przez kursor.Użycie sp_describe_cursor_tables dla raportów tabel bazowych odwołuje się kursor.Aby uzyskać raport Transact-SQL server kursory widoczne na połączenie, użyj sp_cursor_list.

instrukcja DECLARE CURSOR może zażądać typ kursor , które SQL Server nie obsługuje używania SELECT instrukcja znajduje się w kursor DECLARE.SQL Serverniejawnie konwertuje kursor na typ, który może obsługiwać przy użyciu instrukcjaSELECT.Jeśli TYPE_WARNING jest określona w DECLARE CURSOR instrukcja SQL Server wysyła komunikat informacyjny o zakończeniu konwersji w aplikacji.sp_describe_cursornastępnie mogą być wywoływane w celu określenia typu kursor została zaimplementowana.

Uprawnienia

Wymaga członkostwa w public rolę.

Przykłady

Poniższy przykład otwiera globalnego kursor i korzysta z sp_describe_cursor o atrybuty kursor.

USE AdventureWorks2008R2;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR STATIC FOR
SELECT LastName
FROM Person.Person;

OPEN abc;

-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor.
DECLARE @Report CURSOR;

-- Execute sp_describe_cursor into the cursor variable.
EXEC master.dbo.sp_describe_cursor @cursor_return = @Report OUTPUT,
        @cursor_source = N'global', @cursor_identity = N'abc';

-- Fetch all the rows from the sp_describe_cursor output cursor.
FETCH NEXT from @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
    FETCH NEXT from @Report;
END

-- Close and deallocate the cursor from sp_describe_cursor.
CLOSE @Report;
DEALLOCATE @Report;
GO

-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO