Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Reporta os objetos ou tabelas base referenciados por um cursor de servidor.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_describe_cursor_tables
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_source = ] { N'local' | N'global' | N'*cursor_source*' }
, [ @cursor_identity = ] N'cursor_identity'
[ ; ]
Arguments
[ @cursor_return = ] cursor_return SAÍDA
O nome de uma variável de cursor declarada para receber a saída do cursor.
@cursor_return é um OUTPUTcursor, sem padrão, e não deve estar associado a nenhum cursor no momento sp_describe_cursor_tables em que é chamado. O cursor devolvido é um cursor rolável, dinâmico e apenas de leitura.
[ @cursor_source = ] { N'local' | N'global' | N'cursor_source' }
Especifica se o cursor reportado é especificado usando o nome de um cursor local, um cursor global ou uma variável de cursor. @cursor_source é nvarchar(30), sem padrão.
[ @cursor_identity = ] N'cursor_identity'
Quando @cursor_source é local, @cursor_identity é o nome de um cursor criado por uma DECLARE CURSOR afirmação que tem a LOCAL palavra-chave, ou que por defeito é LOCAL.
Quando @cursor_source é global, @cursor_identity é o nome de um cursor criado por uma DECLARE CURSOR afirmação que tem a GLOBAL palavra-chave, ou que por defeito é GLOBAL.
@cursor_identity também pode ser o nome de um cursor de servidor API aberto por uma aplicação ODBC que depois nomeou o cursor chamando SQLSetCursorName.
Quando @cursor_source é variable, @cursor_identity é o nome de uma variável cursor associada a um cursor aberto.
@cursor_identity é nvarchar(128), sem padrão.
Valores de código de retorno
Nenhum.
Os cursores regressaram
sp_describe_cursor_tables encapsula o seu relatório como um parâmetro de saída Transact-SQL cursor . Isto permite que Transact-SQL lotes, procedimentos armazenados e triggers trabalhem com a saída uma linha de cada vez. Isto também significa que o procedimento não pode ser chamado diretamente a partir das funções da API. O parâmetro de saída do cursor deve estar associado a uma variável do programa, mas as APIs não suportam parâmetros ou variáveis de cursor de atribuição.
A tabela seguinte mostra o formato do cursor que é devolvido por sp_describe_cursor_tables.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
table_owner |
sysname | ID de utilizador do dono da mesa. |
table_name |
sysname | Nome do objeto ou da tabela base. No SQL Server, os cursores do servidor retornam sempre o objeto especificado pelo utilizador, não as tabelas base. |
optimizer_hint |
smallint | Bitmap composto por uma ou mais das seguintes opções: 1 = Bloqueio ao nível das filas ( ROWLOCK)4 = Bloqueio ao nível da página ( PAGELOCK)8 = Fechadura de mesa ( TABLOCK)16 = Bloqueio exclusivo de mesa ( TABLOCKX)32 = Atualizar bloqueio ( UPDLOCK)64 = Sem bloqueio ( NOLOCK)128 = Opção rápida na primeira fila ( FASTFIRST)4096 = Leia semântica repetível quando usada com DECLARE CURSOR (HOLDLOCK)Quando são fornecidas múltiplas opções, o sistema utiliza as mais restritivas. No entanto, sp_describe_cursor_tables mostra os flags especificados na consulta. |
lock_type |
smallint | Tipo scroll-lock solicitado, seja explícita ou implicitamente, para cada tabela base que subjaca a este cursor. O valor pode ser uma das seguintes opções: 0 = Nenhum 1 = Partilhado 3 = Atualização |
server_name |
sysname, nullable | Nome do servidor ligado onde a tabela reside.
NULL quando OPENQUERY ou OPENROWSET são usados. |
objectid |
int | ID do objeto da tabela. 0 quando OPENQUERY ou OPENROWSET são usados. |
dbid |
int | ID da base de dados onde a tabela se encontra. 0 quando OPENQUERY ou OPENROWSET são usados. |
dbname |
sysname, nullable | Nome da base de dados onde a tabela se encontra.
NULL quando OPENQUERY ou OPENROWSET são usados. |
Remarks
sp_describe_cursor_tables descreve as tabelas base referenciadas por um cursor de servidor. Para uma descrição dos atributos do conjunto de resultados devolvidos pelo cursor, use sp_describe_cursor_columns. Para uma descrição das características globais do cursor, como a sua capacidade de scroll e atualizabilidade, use sp_describe_cursor. Para obter um relatório dos Transact-SQL cursores do servidor visíveis na ligação, use sp_cursor_list.
Permissions
Requer adesão à função pública de .
Examples
O exemplo seguinte abre um cursor global e é usado sp_describe_cursor_tables para reportar as tabelas referenciadas pelo cursor.
USE AdventureWorks2022;
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 AS CURSOR;
-- Execute sp_describe_cursor_tables into the cursor variable.
EXECUTE 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