sys.sp_cdc_get_ddl_history (Transact-SQL)
Возвращает журнал изменений языка описания данных DDL, связанный с заданным экземпляром записи, со времени включения системы отслеживания информации об изменениях данных для этого экземпляра записи. Система отслеживания измененных данных доступна не во всех выпусках Microsoft SQL Server. Список функций, поддерживаемых в разных выпусках SQL Server, см. в разделе Возможности, поддерживаемые различными выпусками SQL Server 2012.
Синтаксические обозначения Transact-SQL
Синтаксис
sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
Аргументы
- [ @capture\_instance = ] 'capture_instance'
Имя экземпляра отслеживания, связанного с исходной таблицей. Аргумент capture_instance имеет тип sysname и не может иметь значение NULL.
Значения кодов возврата
0 (успешное завершение) или 1 (ошибка)
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
source_schema |
sysname |
Имя схемы исходной таблицы. |
source_table |
sysname |
Имя исходной таблицы. |
capture_instance |
sysname |
Имя экземпляра отслеживания. |
required_column_update |
bit |
Указывает, что изменение DDL требует обновления столбца в таблице изменений, чтобы отразить изменения типа данных в исходном столбце. |
ddl_command |
nvarchar(max) |
Инструкция DDL, примененная к исходной таблице. |
ddl_lsn |
binary(10) |
Регистрационный номер транзакции в журнале (LSN), связанный с изменением DDL. |
ddl_time |
datetime |
Время изменения DDL. |
Замечания
Изменения DDL в исходной таблице, меняющие ее структуру столбцов, например добавляющие или удаляющие столбец либо меняющие тип данных существующего столбца, хранятся в таблице cdc.ddl_history. Эти изменения доступны хранимым процедурам. Записи в таблицу cdc.ddl_history добавляются во время считывания процессом отслеживания транзакций DDL в журнале.
Разрешения
Для возвращения строк всех экземпляров отслеживания в базе данных необходимо членство в предопределенной роли базы данных db_owner. Всем остальным пользователям необходимо разрешение SELECT для всех отслеживаемых столбцов в исходной таблице. Кроме того, если для экземпляра отслеживания была определена шлюзовая роль, требуется членство в этой роли базы данных.
Примеры
В следующем примере добавляется столбец в исходную таблицу HumanResources.Employee, а затем выполняется хранимая процедура sys.sp_cdc_get_ddl_history для сообщения о всех изменениях DDL, которые применялись к исходной таблице, связанной с экземпляром отслеживания HumanResources_Employee.
USE AdventureWorks2012;
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