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