sp_describe_cursor (Transact-SQL)
Raporty atrybuty kursor serwera.
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
.gif)