sys.sp_cdc_get_ddl_history (Transact-SQL)

Dotyczy:SQL Server

Zwraca historię zmian języka definicji danych (DDL) powiązaną z określoną instancją przechwytywania od czasu włączenia przechwytywania zmian danych dla tej instancji. Zbieranie danych zmian nie jest dostępne we wszystkich edycjach SQL Server. Listę funkcji wspieranych przez edycje w SQL Server można znaleźć w artykule Edycje i wspierane funkcje SQL Server 2025.

Transact-SQL konwencje składni

Syntax

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

Arguments

[ @capture_instance = ] N'capture_instance'

Nazwa instancji przechwytującej powiązana z tabelą źródłową. @capture_instance to sysname i nie może być NULL.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

Nazwa kolumny Typ danych Description
source_schema sysname Nazwa schematu tabeli źródłowej.
source_table sysname Nazwa tabeli źródłowej.
capture_instance sysname Nazwa wystąpienia przechwytywania.
required_column_update bit Wskazuje, że zmiana DDL wymagała zmiany kolumny w tabeli zmian, aby odzwierciedlić zmianę typu danych w kolumnie źródłowej.
ddl_command nvarchar(max) Instrukcja DDL dotyczyła tabeli źródłowej.
ddl_lsn binary(10) Numer sekwencyjny logu (LSN) związany ze zmianą DDL.
ddl_time datetime Czas związany ze zmianą DDL.

Remarks

Modyfikacje DDL w tabeli źródłowej, które zmieniają strukturę kolumn tabeli źródłowej, takie jak dodanie lub usunięcie kolumny albo zmiana typu danych istniejącej kolumny, są zachowane w tabeli cdc.ddl_history . Zmiany te można zgłaszać za pomocą tej procedury przechowywanej. Wpisy w cdc.ddl_history są dokonywane w momencie, gdy proces przechwytywania odczytuje transakcję DDL w logu.

uprawnienia

Wymaga członkostwa w db_owner stałej roli bazy danych, aby zwracać wiersze dla wszystkich instancji przechwytywania w bazie danych. Dla wszystkich innych użytkowników wymaga uprawnienia SELECT dla wszystkich przechwyconych kolumn w tabeli źródłowej, a jeśli zdefiniowano rolę gating dla wystąpienia przechwytywania, członkostwo w tej roli bazy danych.

Examples

Poniższy przykład dodaje kolumnę do tabeli HumanResources.Employee źródłowej, a następnie uruchamia procedurę sys.sp_cdc_get_ddl_history przechowywaną, aby zgłosić zmiany DDL dotyczące tabeli źródłowej powiązanej z instancją HumanResources_Employeeprzechwytu.

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