sp_describe_cursor_tables (języka Transact-SQL)
Raporty, obiekty lub tabele bazowe odwołuje się serwer kursor.
Składnia
sp_describe_cursor_tables
[ @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_variableOUTPUT
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_tables 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 nazwa kursor utworzone przez instrukcja DECLARE CURSOR, posiadające lokalne słowo kluczowe lub który ustawiana domyślnie z lokalnego.local_cursor_nameis nvarchar(128).[ @cursor_identity= ] N'global_cursor_name'
Jest nazwa kursor utworzona w instrukcja DECLARE CURSOR posiadające GLOBALNEGO słowo kluczowe lub który pobierana domyślnie szablon GLOBALNY.global_cursor_namemożna także nazwa API serwera kursor otwarty przez aplikację ODBC, który następnie wywołując o nazwie kursor SQLSetCursorName.global_cursor_name is nvarchar(128).[ @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_cursor_tableshermetyzuje sprawozdaniu jako 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 .cursor Parametr wyjściowy musi być powiązana ze zmienną program, ale interfejsów API obsługuje bind cursor Parametry lub zmienne.
W poniższej tabela przedstawiono format kursor jest zwracany przez sp_describe_cursor_tables.
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
table owner |
sysname |
Identyfikator użytkownika właściciela tabela . |
Table_name |
sysname |
Nazwa obiektu lub tabela bazowa.W SQL Server, kursory serwera zawsze przywrócić określone przez użytkownika obiektu, nie podstawowych tabel.W SQL Server 2000, serwer kursory zwrotu tabel bazowych, chyba że widoku lub funkcja jest tworzony przy użyciu VIEW_METADATA. |
Optimizer_hints |
smallint |
Mapa bitowa składa się z co najmniej jedną z następujących czynności: 1 = Wierszpoziom blokowania (ROWLOCK) 4 = Stronypoziom blokowania (PAGELOCK) 8 = Tabeli blokada (TABLOCK) 16 = tabela blokada (TABLOCKX) 32 = Aktualizacji blokada (UPDLOCK) 64 = Nie blokada (NOLOCK) 128 = Opcja szybkiego pierwszego wiersza (FASTFIRST) 4096 = Odczyt powtarzalny semantycznych, gdy używana z ZADEKLAROWAĆ kursor (HOLDLOCK) Jeżeli podano wiele opcji system używa najbardziej restrykcyjne.Jednakże sp_describe_cursor_tables zawiera flagi, które określono w kwerendzie. |
lock_type |
smallint |
Scrollblokada typu żądanie albo jawnie lub niejawnie dla każdej tabela bazowa , która źródłową tego kursor.Wartość może być jedną z następujących czynności: 0 = Brak 1 = Shared 3 = Aktualizacji |
server_name |
sysname, nullable |
Nazwa serwer połączony w tabela znajduje się na.Wartość NULL, gdy używane są OtwórzKwerendę (OpenQuery) lub OPENROWSET. |
Objectid |
int |
Identyfikator obiektu tabela.0, gdy używane są OtwórzKwerendę (OpenQuery) lub OPENROWSET. |
dbid |
int |
Identyfikator bazy danych, która znajduje się w tabela .0, gdy używane są OtwórzKwerendę (OpenQuery) lub OPENROWSET. |
dbname |
sysname, nullable |
Nazwa bazy danych, która znajduje się w tabela .Wartość NULL, gdy używane są OtwórzKwerendę (OpenQuery) lub OPENROWSET. |
Uwagi
sp_describe_cursor_tablesw tym artykule opisano tabel bazowych, które odwołuje się serwer kursor.Opis atrybutów zestaw wyników zwrócone przez kursorza pomocą sp_describe_cursor_columns.Opis cech globalnego kursor, takie jak jego scrollability i aktualizacji, należy użyć sp_describe_cursor.Aby uzyskać raport Transact-SQL kursory serwera, które są widoczne na połączenie, użyj sp_cursor_list.
Uprawnienia
Wymaga członkostwa w public rolę.
Przykłady
Poniższy przykład otwiera globalnego kursor i korzysta z sp_describe_cursor_tables do raportu na tabele, do których odwołują się kursor.
USE AdventureWorks2008R2;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
GO
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_tables.
DECLARE @Report CURSOR;
-- Execute sp_describe_cursor_tables into the cursor variable.
EXEC master.dbo.sp_describe_cursor_tables
@cursor_return = @Report OUTPUT,
@cursor_source = N'global', @cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_tables 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_tables.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO