Udostępnij przez


sp_describe_cursor (Transact-SQL)

Raporty atrybuty kursor serwera.

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

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
    Is the name of a declared cursor variable to receive the cursor output.output_cursor_variable is cursor, with no default, and must not be associated with any cursors at the time sp_describe_cursor is called.Kursor, zwracana jest kursor przewijaną, dynamiczne, tylko do odczytu.

  • [ @ cursor_source = { N'local "| N'global " | N'variable " }
    Określa, czy kursor jest podana w deklaracji jest określona przy użyciu nazwy kursor lokalny, globalny kursora lub zmiennej kursora.Parametr jest nvarchar(30).

  • [ @cursor_identity = ] N'local_cursor_name' ]
    Is the name of a cursor created by a DECLARE CURSOR statement that either has the LOCAL keyword or that defaulted to LOCAL.local_cursor_name is nvarchar(128).

  • [ @cursor_identity = ] N'global_cursor_name' ]
    Is the name of a cursor created by a DECLARE CURSOR statement that either has the GLOBAL keyword or that defaulted to GLOBAL.global_cursor_name is nvarchar(128).

    global_cursor_name Można także nazwa kursor serwera interfejsu API, który jest otwarty przez aplikację ODBC następnie o nazwie poprzez wywołanie SQLSetCursorName.

  • [ @cursor_identity = ] N'input_cursor_variable' ]
    Is the name of a cursor variable associated with an open cursor.input_cursor_variable is nvarchar(128).

Wartości kodów powrotnych

None

Kursory, zwrot

sp_describe_cursor encapsulates its result set in a Transact-SQLcursor output parameter.Dzięki temu Transact-SQL instancje, procedur przechowywanych i wyzwalaczy do pracy z jednego wiersza danych wyjściowych na raz. Oznacza to również, że nie można wywołać procedury bezpośrednio z funkcjami interfejsu API bazy danych.The kursor output parameter must be bound to a program variable, but the database APIs do not support wiązanie kursor parameters or variables.

W poniższej tabela przedstawiono format zwrócone za pomocą kursor sp_describe_cursor.Format kursor jest taka sama, jak format zwrócone za pomocą sp_cursor_list.

Nazwa kolumna

Typ danych

Description

reference_name

sysname

Nazwa używana do odwoływania się do kursor.Jeśli odwołanie do kursor za pomocą nazwy określonej na instrukcja DECLARE CURSOR, Nazwa odwołania jest taka sama jak nazwa kursora.Jeśli odwołanie do kursor za pomocą zmiennej, Nazwa odwołania jest nazwa zmiennej.

cursor_name

sysname

Nazwa kursor instrukcja DECLARE kursor.W SQL Server, jeśli kursor został utworzony przez ustawienie zmiennej kursora kursorem, cursor_name zwraca nazwę zmiennej kursora.We wcześniejszych wersjach SQL Server, to kolumna wyprowadzenia zwraca nazwę wygenerowane przez system.

cursor_scope

tinyint

1 = LOKALNY

2 = GLOBALNE

status

int

Te same wartości jak zgłoszonej przez funkcja systemu CURSOR_STATUS:

1 = Kursora, do którego odwołuje się przez kursor nazwy lub zmienna jest otwarty.Jeśli kursor znajduje się niewrażliwe, statyczny lub zestawu kluczy, ma ona co najmniej jeden wiersz.Jeśli kursor znajduje się dynamiczne, zestaw wyników zawiera zero lub więcej wierszy.

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

Wartość -1 = kursora, do którego 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 parametru WYJŚCIOWEGO przypisana do zmiennej kursora, ale procedura przechowywana zamknięte kursor przed zwróceniem.

3 = Kursora lub kursor zmienna o określonej nazwie nie istnieje lub zmiennej kursora nie miał kursora, przydzielone do niego.

model

tinyint

1 = Insensitive (lub statyczne)

2 = Zestaw kluczy

3 = Dynamic

4 = Szybko do przodu

concurrency

tinyint

1 = Odczyt — tylko

2 = Blokad przewijania

3 = Optimistic

scrollable

tinyint

0 = Do przodu — tylko

1 = Przewijany

open_status

tinyint

0 = Zamknięte

1 = Otwarte

cursor_rows

decimal(10,0)

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

fetch_status

smallint

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

0 = Pobieranie powiodło się.

Wartość -1 = nie powiodło się pobranie lub wykracza poza granice kursor.

2 = Żądane brakuje wierszy.

-9 = Nie było żadnych pobrania na kursor.

column_count

smallint

Ustaw liczbę kolumn w wyniku kursor.

row_count

decimal(10,0)

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

last_operation

tinyint

Ostatnia Operacja wykonana w kursor:

0 = Nie zostały wykonane operacje na kursor.

1 = OTWARTE

2 = POBRANIA

3 = WSTAWIANIA

4 = AKTUALIZACJI

5 = USUŃ

6 = ZAMKNIĘCIA

7 = COFNĄĆ PRZYDZIAŁ

cursor_handle

int

Unikatowa wartość kursor w obrębie zakres serwera.

Remarks

sp_describe_cursor opisuje atrybuty, które są globalne kursor serwera, takie jak możliwość przewijania i aktualizować.Użycie sp_describe_cursor_columns opis atrybutów zestaw wyników zwróconych przez kursor.Użycie sp_describe_cursor_tables raportu tabel bazowych, do którego odnosi się kursor.Aby uzyskać raport kursorów serwera języka Transact-SQL, które są widoczne dla połączenia, należy użyć sp_cursor_list.

A DECLARE CURSOR statement may request a cursor type that SQL Server cannot support using the SELECT statement that is contained in the DECLARE CURSOR.SQL Server implicitly converts the cursor to a type it can support using the SELECT statement.If TYPE_WARNING is specified in the DECLARE CURSOR statement, SQL Server sends the application an informational message that a conversion has been completed.sp_describe_cursor can then be called to determine the type of cursor that has been implemented.

Uprawnienia

Członkostwo w grupie wymaga publiczne roli.

Przykłady

Poniższy przykład otwiera globalne kursor i używa sp_describe_cursor Aby zgłosić atrybuty kursor.

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

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