Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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