sys.sp_cdc_get_ddl_history (Transact-SQL)

Gäller för:SQL Server

Returnerar data definition language (DDL) ändringshistorik kopplad till den angivna capture-instansen eftersom change data capture aktiverades för den capture-instansen. Ändringsdataregistrering finns inte tillgänglig i varje utgåva av SQL Server. För en lista över funktioner som stöds av utgåvorna i SQL Server, se Utgåvor och stödda funktioner i SQL Server 2025.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @capture_instance = ] N'capture_instance'

Namnet på fångstinstansen kopplad till en källtabell. @capture_instance är sysname och kan inte vara NULLdet.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Kolumnnamn Datatyp Description
source_schema sysname Namnet på källtabellschemat.
source_table sysname Namnet på källtabellen.
capture_instance sysname Namnet på avbildningsinstansen.
required_column_update bit Indikerar att DDL-ändringen krävde att en kolumn i ändringstabellen ändrades för att återspegla en datatypändring som gjorts i källkolumnen.
ddl_command nvarchar(max) DDL-satsen tillämpades på källtabellen.
ddl_lsn binary(10) Logsekvensnummer (LSN) kopplat till DDL-ändringen.
ddl_time datetime Tid kopplad till DDL-förändringen.

Remarks

DDL-modifieringar av källtabellen som ändrar kolumnstrukturen i källtabellen, såsom att lägga till eller ta bort en kolumn, eller ändra datatypen för en befintlig kolumn, behålls i cdc.ddl_history tabellen. Dessa förändringar kan rapporteras med hjälp av denna lagrade procedur. Poster görs cdc.ddl_history när fångstprocessen läser DDL-transaktionen i loggen.

Permissions

Kräver medlemskap i db_owner fixed database-rollen för att returnera rader för alla capture-instanser i databasen. För alla andra användare kräver SELECT-behörighet för alla insamlade kolumner i källtabellen och, om en gating-roll för insamlingsinstansen har definierats, medlemskap i den databasrollen.

Examples

Följande exempel lägger till en kolumn i källtabellen HumanResources.Employee och kör sedan den sys.sp_cdc_get_ddl_history lagrade proceduren för att rapportera DDL-ändringarna som gäller för källtabellen kopplad till fångstinstansen 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