sys.sp_cdc_get_ddl_history (Transact-SQL)

Si applica a:SQL Server

Restituisce la cronologia delle modifiche Data Definition Language (DDL) associata all'istanza di acquisizione specificata a partire dall'abilitazione di Change Data Capture per l'istanza di acquisizione. Change Data Capture non è disponibile in ogni edizione di SQL Server. Per un elenco delle funzionalità supportate dalle edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2022.

Convenzioni di sintassi Transact-SQL

Sintassi

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
[ ; ]

Argomenti

[ @capture_instance = ] 'capture_instance'

Nome dell'istanza di acquisizione associata a una tabella di origine. @capture_instance è sysname e non può essere NULL.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nome colonna Tipo di dati Descrizione
source_schema sysname Nome dello schema della tabella di origine.
source_table sysname Nome della tabella di origine.
capture_instance sysname Nome dell'istanza di acquisizione.
required_column_update bit Indica che la modifica DDL ha richiesto una colonna della tabella delle modifiche che deve essere modificata per riflettere una modifica del tipo di dati apportata alla colonna di origine.
ddl_command nvarchar(max) Istruzione DDL applicata alla tabella di origine.
ddl_lsn binary(10) Numero di sequenza del file di log (LSN) associato alla modifica DDL.
ddl_time datetime Ora associata alla modifica DDL.

Osservazioni:

Le modifiche DDL alla tabella di origine che modificano la struttura delle colonne della tabella di origine, ad esempio l'aggiunta o l'eliminazione di una colonna o la modifica del tipo di dati di una colonna esistente, vengono mantenute nella tabella cdc.ddl_history . È possibile creare un report su queste modifiche utilizzando questa stored procedure. Le voci in cdc.ddl_history vengono eseguite al momento del processo di acquisizione che legge la transazione DDL nel log.

Autorizzazioni

Richiede l'appartenenza al ruolo predefinito del database db_owner per restituire righe per tutte le istanze di acquisizione nel database. Per tutti gli altri utenti, è richiesta l'autorizzazione SELECT su tutte le colonne acquisite nella tabella di origine e, se è stato definito un ruolo di controllo per l'istanza di acquisizione, l'appartenenza a tale ruolo del database.

Esempi

Nell'esempio seguente viene aggiunta una colonna alla tabella di origine HumanResources.Employee e viene eseguita la stored procedure sys.sp_cdc_get_ddl_history per creare un report sulle modifiche DDL che si applicano alla tabella di origine associata all'istanza di acquisizione 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