Freigeben über


sys.sp_cdc_get_ddl_history (Transact-SQL)

Gilt für: SQL Server

Gibt den Änderungsverlauf der Datendefinitionssprache (DDL, Data Definition Language), die der angegebenen Aufzeichnungsinstanz zugeordnet ist, zurück. Dabei werden alle Daten ab dem Zeitpunkt berücksichtigt, ab dem Change Data Capture für die entsprechende Aufzeichnungsinstanz aktiviert wurde. Änderungsdatenerfassung ist in jeder Edition von SQL Server nicht verfügbar. Eine Liste der Funktionen, die von den SQL Server-Editionen unterstützt werden, finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2022.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @capture_instance = ] 'capture_instance'

Der Name der Aufnahmeinstanz, die einer Quelltabelle zugeordnet ist. @capture_instance ist "sysname" und kann nicht seinNULL.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Spaltenname Datentyp Beschreibung
source_schema sysname Name des Quelltabellenschemas.
source_table sysname Name der Quelltabelle.
capture_instance sysname Name der Aufzeichnungsinstanz.
required_column_update bit Weist darauf hin, dass die DDL-Änderung eine Spaltenänderung in der Änderungstabelle erfordert, um die Datentypänderung widerzuspiegeln, die in der Quellspalte durchgeführt wurde.
ddl_command nvarchar(max) Die DDL-Anweisung, die auf die Quelltabelle angewendet wurde.
ddl_lsn binary(10) Protokollfolgenummer (Log Sequence Number, LSN), die der DDL-Änderung zugeordnet wurde.
ddl_time datetime Der mit der DDL-Änderung verknüpfte Zeitpunkt.

Hinweise

DDL-Änderungen an der Quelltabelle, die die Struktur der Quelltabellenspalte ändern, z. B. das Hinzufügen oder Ablegen einer Spalte oder das Ändern des Datentyps einer vorhandenen Spalte, werden in der cdc.ddl_history Tabelle beibehalten. Diese Änderungen können mithilfe dieser gespeicherten Prozedur gemeldet werden. Einträge werden cdc.ddl_history zum Zeitpunkt der Erfassung vorgenommen, der die DDL-Transaktion im Protokoll liest.

Berechtigungen

Erfordert die Mitgliedschaft in der db_owner festen Datenbankrolle, um Zeilen für alle Aufnahmeinstanzen in der Datenbank zurückzugeben. Für alle anderen Benutzer ist die SELECT-Berechtigung für alle aufgezeichneten Spalten in der Quelltabelle und, wenn eine Gatingrolle für die Aufzeichnungsinstanz definiert wurde, eine Mitgliedschaft in dieser Datenbankrolle erforderlich.

Beispiele

Im folgenden Beispiel wird eine Spalte in der HumanResources.Employee-Quelltabelle hinzugefügt und anschließend die gespeicherte Prozedur sys.sp_cdc_get_ddl_history ausgeführt, um die DDL-Änderungen zu melden, die sich auf die Quelltabelle beziehen, die der Aufzeichnungsinstanz HumanResources_Employee zugeordnet ist.

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