Partilhar via


sys.sp_cdc_get_ddl_history (Transact-SQL)

Aplica-se: SQL Server

Retorna o histórico de alteração DDL (linguagem de definição de dados) associado à instância de captura especificada desde que Change Data Capture foi habilitado para aquela instância de captura. 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_ddl_history [ @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.

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.
required_column_update bit Indica que a alteração de DDL requereu que uma coluna na tabela de alteração fosse alterada para refletir uma alteração de tipo de dados feita na coluna de origem.
ddl_command nvarchar(max) A instrução DDL aplicada à tabela de origem.
ddl_lsn binary(10) Número de sequência de log (LSN) associado com a alteração de DDL.
ddl_time datetime Hora associada à alteração de DDL.

Comentários

As modificações DDL na tabela de origem que alteram a estrutura da coluna da tabela de origem, como adicionar ou descartar uma coluna ou alterar o tipo de dados de uma coluna existente, são mantidas na tabela cdc.ddl_history . Essas mudanças podem ser informadas usando este procedimento armazenado. As entradas são cdc.ddl_history feitas no momento em que o processo de captura lê a transação DDL no log.

Permissões

Requer associação na função de banco de dados fixa db_owner para retornar linhas para todas as instâncias de captura no banco de dados. 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.

Exemplos

O exemplo a seguir acrescenta uma coluna à tabela de origem HumanResources.Employee e, então, executa o procedimento armazenado sys.sp_cdc_get_ddl_history, para informar as alterações na DDL que se aplicam à tabela de origem associada à instância de captura HumanResources_Employee.

USE AdventureWorks2022;
GO

ALTER TABLE HumanResources.Employee
ADD Test_Column INT NULL;
GO

-- Pause 10 seconds to allow the event to be logged.
WAITFOR DELAY '00:00:10';
GO

EXECUTE sys.sp_cdc_get_ddl_history
    @capture_instance = 'HumanResources_Employee';
GO