sys.sp_cdc_get_ddl_history (Transact-SQL)

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. Change Data Capture ist nur in den Editionen SQL Server 2008 Enterprise, Developer und Evaluation verfügbar.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'

Argumente

  • [ @capture\_instance = ] 'capture_instance'
    Der Name der mit einer Quelltabelle verknüpften Aufzeichnungsinstanz. capture_instance ist vom Datentyp sysname und darf nicht NULL sein.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

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 Spaltenstruktur der Quelltabelle ändern, z. B. das Hinzufügen oder Löschen von Spalten oder das Ändern des Datentyps einer vorhandenen Spalte, werden in der Tabelle cdc.ddl_history verwaltet. Diese Änderungen können mithilfe dieser gespeicherten Prozedur gemeldet werden. Die Einträge in cdc.ddl_history erfolgen zu dem Zeitpunkt, zu dem der Aufzeichnungsprozess die DDL-Transaktion im Protokoll vorfindet.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Datenbankrolle db_owner, damit Zeilen für alle Aufzeichnungsinstanzen in der Datenbank zurückgegeben werden. 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 AdventureWorks;
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