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.
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