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 varie edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2017.
Convenzioni relative alla 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