Partilhar via


sys.sp_cdc_get_captured_columns (Transact-SQL)

Aplica-se: SQL Server

Retorna informações de metadados de captura de dados de alteração das colunas de origem capturadas, localizadas pela instância de captura especificada. A captura de dados de alteração não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, confira Edições e recursos com suporte no SQL Server 2022.

Convenções de sintaxe de Transact-SQL

Sintaxe

sys.sp_cdc_get_captured_columns
    [ @capture_instance = ] 'capture_instance'
[ ; ]

Argumentos

@capture_instance [ = ] 'capture_instance'

O nome da instância de captura associada a uma tabela de origem. @capture_instance é sysname e não pode ser NULL.

Para relatar as instâncias de captura da tabela, execute o procedimento armazenado sys.sp_cdc_help_change_data_capture .

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nome da coluna Tipo de dados Descrição
source_schema sysname Nome do esquema de tabela de origem.
source_table sysname Nome da tabela de origem.
capture_instance sysname Nome da instância de captura.
column_name sysname Nome da coluna de origem capturada.
column_id int ID da coluna na tabela de origem.
column_ordinal int Posição da coluna na tabela de origem.
data_type sysname Tipo de dados da coluna.
character_maximum_length int Comprimento máximo de caracteres da coluna baseada em caracteres; caso contrário, NULL.
numeric_precision tinyint Precisão da coluna se baseada em números; caso contrário, NULL.
numeric_precision_radix smallint Base de precisão da coluna se baseada em números; caso contrário, NULL.
numeric_scale int Escala da coluna, se baseada em números; caso contrário, NULL.
datetime_precision smallint Precisão da coluna se baseada em data e hora; caso contrário, NULL.

Comentários

Use sys.sp_cdc_get_captured_columns para obter informações de coluna sobre as colunas capturadas retornadas consultando as funções de consulta da instância de captura cdc.fn_cdc_get_all_changes_<capture_instance> ou cdc.fn_cdc_get_net_changes_<capture_instance>. Os nomes de coluna, ID e posição permanecem constantes durante a duração da instância de captura. Somente o tipo de dados de coluna é alterado quando o tipo de dados da coluna de origem subjacente na tabela controlada é alterado. As colunas adicionadas ou descartadas de uma tabela de origem não têm efeito sobre as colunas capturadas de instâncias de captura existentes.

Use sys.sp_cdc_get_ddl_history para obter informações sobre instruções DDL (linguagem de definição de dados) aplicadas a uma tabela de origem. Qualquer mudança de DDL que modificou a estrutura de uma coluna de origem localizada é retornada no conjunto de resultados.

Permissões

Requer associação na função de banco de dados fixa db_owner. Para todos os outros usuários, requer a permissão SELECT em todas as colunas capturadas na tabela de origem e, se uma função associada para a instância de captura tiver sido definida, faça associação nessa função de banco de dados. Quando o chamador não tem permissão para exibir os dados de origem, a função retorna o Erro 22981 (Object doesn't exist or access is denied.).

Exemplos

O exemplo a seguir retorna informações sobre as colunas capturadas na instância de captura HumanResources_Employee.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_get_captured_columns
    @capture_instance = N'HumanResources_Employee';
GO