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 atributos das colunas no conjunto de resultados de um cursor de servidor.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_describe_cursor_columns
[ @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 OUTPUT parâmetro do tipo int, sem padrão, e não deve estar associado a nenhum cursor no momento sp_describe_cursor_columns 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 cursor. @cursor_source é nvarchar(30), sem padrão.
[ @cursor_identity = ] N'cursor_identity'
O nome de um cursor criado por uma DECLARE CURSOR instrução.
@cursor_identity é nvarchar(128), sem padrão.
Se o cursor tiver a
LOCALpalavra-chave, ou estiver por defeito paraLOCAL, @cursor_identity élocal.Se o cursor tiver a
GLOBALpalavra-chave, ou estiver por defeito paraGLOBAL, @cursor_identity églobal. @cursor_identity também pode ser o nome de um cursor de servidor API aberto por uma aplicação ODBC, e depois nomeado ao chamarSQLSetCursorName.Caso contrário, @cursor_identity é o nome de uma variável cursor associada a um cursor aberto.
Valores de código de retorno
Nenhum.
Os cursores regressaram
sp_describe_cursor_columns 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 da base de dados. O cursor parâmetro de saída deve estar ligado a uma variável do programa, mas as APIs da base de dados não suportam parâmetros ou variáveis de ligação cursor .
A tabela seguinte mostra o formato do cursor devolvido usando sp_describe_cursor_columns.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
column_name |
sysname | Nome atribuído à coluna do conjunto de resultados. A coluna é NULL se a coluna foi especificada sem uma cláusula acompanhante AS .Nullable. |
ordinal_position |
int | Posição relativa da coluna a partir da coluna mais à esquerda no conjunto de resultados. A primeira coluna está na posição 0. |
column_characteristics_flags |
int | Uma máscara de bits que indica a informação armazenada no DBCOLUMNFLAGS OLE DB. Pode ser um ou uma combinação dos seguintes valores:1 = Favorito2 = Comprimento fixo4 = Anulável8 = Versão por linha16 = Coluna atualizável (definida para colunas projetadas de um cursor que não FOR UPDATE tem cláusula e, se existir tal coluna, só pode haver uma por cursor).Quando os valores dos bits são combinados, aplicam-se as características dos valores combinados dos bits. Por exemplo, se o valor do bit for 6, a coluna é uma coluna de comprimento fixo (2), anulável (4). |
column_size |
int | Tamanho máximo possível para um valor nesta coluna. |
data_type_sql |
smallint | Número que indica o tipo de dado SQL Server da coluna. |
column_precision |
tinyint | Precisão máxima da coluna conforme o bPrecision valor em OLE DB. |
column_scale |
tinyint | Número de dígitos à direita do ponto decimal para os tipos numéricos ou de dados decimais , conforme o bScale valor em OLE DB. |
order_position |
int | Se a coluna participar na ordenação do conjunto de resultados, a posição da coluna na chave de ordem relativa à coluna mais à esquerda. |
order_direction |
varchar(1) |
A = A coluna está na chave de ordem e a ordem é ascendente.D = A coluna está na chave de ordem e a ordem é descendente.NULL = A coluna não participa na ordenação.Nullable. |
hidden_column |
smallint |
0 = esta coluna aparece na lista de seleção.1 = Reservado para uso futuro. |
columnid |
int | ID da coluna base. Se a coluna do conjunto de resultados foi construída a partir de uma expressão, columnid é -1. |
objectid |
int | ID de objeto do objeto ou tabela base que fornece a coluna. Se a coluna do conjunto de resultados foi construída a partir de uma expressão, objectid é -1. |
dbid |
int | ID da base de dados que contém a tabela base que fornece a coluna. Se a coluna do conjunto de resultados foi construída a partir de uma expressão, dbid é -1. |
dbname |
sysname | Nome da base de dados que contém a tabela base que fornece a coluna. Se a coluna do conjunto de resultados foi construída a partir de uma expressão, dbname é NULL.Nullable. |
Remarks
sp_describe_cursor_columns descreve os atributos das colunas no conjunto de resultados de um cursor servidor, como o nome e o tipo de dados de cada cursor. Use sp_describe_cursor para uma descrição dos atributos globais do cursor do servidor. Use sp_describe_cursor_tables para um relatório das tabelas base referenciadas pelo 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_columns para reportar as colunas usadas no cursor.
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET
FOR SELECT LastName
FROM Person.Person;
GO
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_columns.
DECLARE @Report AS CURSOR;
-- Execute sp_describe_cursor_columns into the cursor variable.
EXECUTE master.dbo.sp_describe_cursor_columns
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_columns 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_columns.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO