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