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