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.
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
Consulte também