Udostępnij przez


sp_describe_cursor_tables (Transact-SQL)

Raporty, obiekty lub tabele bazowe odwołuje się kursor serwera.

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

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
    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_tables 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 either having 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 either having the GLOBAL keyword, or that defaulted to GLOBAL.global_cursor_name can also be the name of an API server cursor opened by an ODBC application that then named the cursor by calling SQLSetCursorName.global_cursor_name is nvarchar(128).

  • [ @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_tables encapsulates its report as 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 funkcji interfejsu API.The kursor output parameter must be bound to a program variable, but the APIs do not support bind kursor parameters or variables.

W poniższej tabela przedstawiono w formacie kursor, jest zwracany przez sp_describe_cursor_tables.

Nazwa kolumna

Typ danych

Description

table owner

sysname

Identyfikator użytkownika właściciela tabela.

Table_name

sysname

Nazwa tabela bazowa lub obiektu.W SQL Server, kursory serwera zawsze zwracają obiekt określone przez użytkownika, tabel bazowych. W SQL Server 2000, kursory serwer zwraca tabel bazowych, chyba, że przy użyciu WITH VIEW_METADATA tworzony jest widok lub funkcja.

Optimizer_hints

smallint

Mapa bitowa, która składa się z co najmniej jedną z następujących czynności:

1 = Poziomie wiersza blokowania (ROWLOCK)

4 = Poziom strona blokowania (PAGELOCK)

8 = blokada tabela (TABLOCK)

16 = tabela wyłącznej blokada (TABLOCKX)

32 = Blokada aktualizacji (UPDLOCK)

64 = Nie blokad (NOLOCK)

128 = Opcję szybkiego pierwszego wiersza (FASTFIRST)

Odczyt powtarzalny = 4096 semantycznych, gdy używana z DECLARE kursor (HOLDLOCK)

Gdy wiele opcji są podane, system używa najbardziej restrykcyjne.Jednak sp_describe_cursor_tables zawiera flagi, które są określone w kwerendzie.

lock_type

smallint

Scroll blokada typu żądanie albo jawnie lub niejawnie dla każdej tabela bazowa, które ź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ę.Wartość NULL, gdy używane są OPENQUERY lub OPENROWSET.

Objectid

int

Identyfikator obiektu w tabela.0, gdy używane są OPENQUERY lub OPENROWSET.

dbid

int

Identyfikator znajdujący się w tabela w bazie danych.0, gdy używane są OPENQUERY lub OPENROWSET.

dbname

sysname, nullable

Nazwa bazy danych, przechowywanego w tabela.Wartość NULL, gdy używane są OPENQUERY lub OPENROWSET.

Remarks

sp_describe_cursor_tables zawiera opis podstawowych tabel, do których odwołuje się kursor serwera.Aby uzyskać opis atrybutów zestaw wyników zwróconych przez kursor za pomocą sp_describe_cursor_columns.Opis właściwości globalne kursor, takie jak jego scrollability i aktualizacji należy użyć sp_describe_cursor.Aby otrzymać raport o Transact-SQL Użyj kursorów serwera, które są widoczne w danym połączeniu sp_cursor_list.

Uprawnienia

Członkostwo w grupie wymaga publiczne roli.

Przykłady

Poniższy przykład otwiera globalne kursora i używa sp_describe_cursor_tables Aby zgłosić w tabelach, do których odwołuje się kursor.

USE AdventureWorks
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Contact
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