Partilhar via


sys.sp_cdc_get_ddl_history (Transact-SQL)

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. O Change Data Capture está disponível somente nas edições Enterprise, Developer e Evaluation do SQL Server 2008.

Ícone de vínculo de tópicoConvenções de sintaxe 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 à tabela de origem. capture_instance é sysname, e não pode ser NULL.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nome da coluna

Tipo de dados

Descrição

source_schema

sysname

Nome do esquema da 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 seqüência de log (LSN) associado com a alteração de DDL.

ddl_time

datetime

Hora associada à alteração de DDL.

Comentários

Modificações na DDL na tabela de origem que alteram a estrutura da coluna da tabela de origem, como a adição ou descarte de uma coluna, ou a mudança do 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. Entradas em cdc.ddl_history são realizadas no momento em que o processo de captura lê a transação de DDL no log.

Permissões

Requer associação à função de banco de dados fixa db_owner, para retornar linhas de 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, 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 AdventureWorks;
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