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. A captura de dados de alterações não está disponível em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos compatíveis com as edições do SQL Server 2012.

Ícone de vínculo de tópico Convenções da 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 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

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, 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 AdventureWorks2012;
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

Consulte também

Referência

sys.sp_cdc_help_change_data_capture (Transact-SQL)