sys.sp_cdc_get_ddl_history (Transact-SQL)

Van toepassing op:SQL Server

Geeft de wijzigingsgeschiedenis van de data definition language (DDL) terug die bij de gespecificeerde capture-instantie hoort, aangezien change data capture voor die capture-instantie was ingeschakeld. Change Data capture is niet beschikbaar in elke editie van SQL Server. Voor een lijst van functies die door de edities in SQL Server worden ondersteund, zie Edities en ondersteunde functies van SQL Server 2025.

Transact-SQL syntaxis-conventies

Syntax

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

Arguments

[ @capture_instance = ] N'capture_instance'

De naam van de capture-instantie die gekoppeld is aan een brontabel. @capture_instance is sysname en kan dat niet zijn NULL.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Resultaatset

Kolomnaam Gegevenstype Description
source_schema sysname Naam van het brontabelschema.
source_table sysname Naam van de brontabel.
capture_instance sysname Naam van het capture-exemplaar.
required_column_update bit Geeft aan dat de DDL-wijziging vereiste dat een kolom in de wijzigingstabel werd aangepast om een wijziging van het datatype in de bronkolom weer te geven.
ddl_command nvarchar(max) De DDL-instructie werd toegepast op de brontabel.
ddl_lsn binary(10) Log-sequentienummer (LSN) geassocieerd met de DDL-wijziging.
ddl_time datetime Tijd die gepaard gaat met de DDL-wijziging.

Remarks

DDL-aanpassingen aan de brontabel die de kolomstructuur van de brontabel veranderen, zoals het toevoegen of verwijderen van een kolom, of het wijzigen van het datatype van een bestaande kolom, worden in de cdc.ddl_history tabel behouden. Deze veranderingen kunnen worden gerapporteerd met behulp van deze opgeslagen procedure. Vermeldingen in cdc.ddl_history worden gemaakt op het moment dat het capture-proces de DDL-transactie in het logboek leest.

Permissions

Vereist lidmaatschap van de db_owner vaste databaserol om rijen terug te geven voor alle capture-instanties in de database. Voor alle andere gebruikers is SELECT-machtiging vereist voor alle vastgelegde kolommen in de brontabel en, als er een gatingsrol voor het opnameexemplaren is gedefinieerd, lidmaatschap van die databaserol.

Examples

Het volgende voorbeeld voegt een kolom toe aan de brontabel HumanResources.Employee en voert vervolgens de sys.sp_cdc_get_ddl_history opgeslagen procedure uit om de DDL-wijzigingen te rapporteren die van toepassing zijn op de brontabel die aan de capture-instantie HumanResources_Employeeis gekoppeld.

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