sys.sp_cdc_get_ddl_history (Transact-SQL)

Aplica-se a: SQL Server

Devolve o histórico de alterações da linguagem de definição de dados (DDL) associado à instância de captura especificada, uma vez que a captura de dados de alteração foi ativada para essa instância de captura. A captura de dados de alterações não está disponível em todas as edições do SQL Server. Para uma lista de funcionalidades suportadas pelas edições do SQL Server, consulte Edições e funcionalidades suportadas do SQL Server 2025.

Transact-SQL convenções de sintaxe

Syntax

sys.sp_cdc_get_ddl_history [ @capture_instance = ] N'capture_instance'
[ ; ]

Arguments

[ @capture_instance = ] N'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 de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nome da coluna Tipo de dados Description
source_schema sysname Nome do esquema da tabela fonte.
source_table sysname Nome da tabela fonte.
capture_instance sysname Nome da instância de captura.
required_column_update bit Indica que a alteração DDL exigiu que uma coluna na tabela de alterações fosse alterada para refletir uma alteração do tipo de dado feita na coluna de origem.
ddl_command nvarchar(max) A instrução DDL aplicava-se à tabela fonte.
ddl_lsn binary(10) Número de sequência logarítmica (LSN) associado à alteração DDL.
ddl_time datetime Tempo associado à alteração do DDL.

Remarks

As modificações DDL na tabela de origem que alteram a estrutura da coluna da tabela de origem, como adicionar ou eliminar uma coluna, ou alterar o tipo de dado de uma coluna existente, são mantidas na tabela cdc.ddl_history . Estas alterações podem ser reportadas através deste procedimento armazenado. As entradas cdc.ddl_history são feitas no momento em que o processo de captura lê a transação DDL no log.

Permissions

Requer a pertença ao papel de base de dados fixo db_owner para devolver as linhas de todas as instâncias de captura na base 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 de seleção para a instância de captura foi definida, a associação a essa função de banco de dados.

Examples

O exemplo seguinte adiciona uma coluna à tabela HumanResources.Employee de origem e depois executa o sys.sp_cdc_get_ddl_history procedimento armazenado para reportar as alterações DDL que se aplicam à tabela de origem associada à instância HumanResources_Employeede captura .

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