sys.sp_cdc_get_captured_columns (Transact-SQL)
Возвращает сведения о метаданных системы отслеживания измененных данных для исходных столбцов, отслеживаемых указанным экземпляром отслеживания. Система отслеживания измененных данных доступна не во всех выпусках Microsoft SQL Server. Список функций, поддерживаемых в разных выпусках SQL Server, см. в разделе Возможности, поддерживаемые различными выпусками SQL Server 2012.
Синтаксические обозначения Transact-SQL
Синтаксис
sys.sp_cdc_get_captured_columns
[ @capture_instance = ] 'capture_instance'
Аргументы
[ @capture\_instance = ] 'capture_instance'
Имя экземпляра отслеживания, связанного с исходной таблицей. Аргумент capture_instance имеет тип sysname и не может иметь значение NULL.Чтобы просмотреть список экземпляров отслеживания для данной таблицы, необходимо вызвать хранимую процедуру sys.sp_cdc_help_change_data_capture.
Значения кодов возврата
0 (успешное завершение) или 1 (ошибка)
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
source_schema |
sysname |
Имя схемы исходной таблицы. |
source_table |
sysname |
Имя исходной таблицы. |
capture_instance |
sysname |
Имя экземпляра отслеживания. |
column_name |
sysname |
Имя отслеживаемого исходного столбца данных. |
column_id |
int |
Идентификатор столбца в исходной таблице. |
ordinal_position |
int |
Положение столбца в исходной таблице. |
data_type |
sysname |
Тип данных столбца. |
character_maximum_length |
int |
Максимальная длина символьного столбца; в противном случае — NULL. |
numeric_precision |
tinyint |
Точность чисел для числового столбца; в противном случае — NULL. |
numeric_precision_radix |
smallint |
Основание определения точности числовых столбцов; в противном случае — NULL. |
numeric_scale |
int |
Масштаб числового столбца; в противном случае — NULL. |
datetime_precision |
smallint |
Точность для столбца типа datetime; в противном случае — NULL. |
Замечания
Чтобы получить сведения об отслеживаемых столбцах, возвращаемых функциями запроса экземпляра отслеживания cdc.fn_cdc_get_all_changes_<capture_instance> и cdc.fn_cdc_get_net_changes_<capture_instance>, используйте хранимую процедуру sys.sp_cdc_get_captured_columns. Имена, идентификаторы и положение столбцов не изменяются в течение всего времени существования экземпляра отслеживания. Изменяется только тип данных столбца, если изменяется тип данных базового исходного столбца отслеживаемой таблицы. Добавление и удаление столбцов из исходной таблицы не влияет на столбцы, обрабатываемые уже существующими экземплярами отслеживания.
Для получения сведений об инструкциях языка описания данных DDL, примененных к исходной таблице, используется процедура sys.sp_cdc_get_ddl_history. Результирующий набор содержит сведения обо всех изменениях DDL, изменивших структуру отслеживаемого исходного столбца.
Разрешения
Необходимо членство в предопределенной роли базы данных db_owner. Всем остальным пользователям необходимо разрешение SELECT для всех отслеживаемых столбцов в исходной таблице. Кроме того, если для экземпляра отслеживания была определена шлюзовая роль, требуется членство в этой роли базы данных. Если вызывающий объект не имеет разрешения на просмотр исходных данных, то функция возвращает ошибку 22981 (Объект не существует или доступ запрещен).
Примеры
В следующем примере извлекается информация о столбцах, обрабатываемых экземпляром отслеживания HumanResources_Employee.
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_get_captured_columns
@capture_instance = N'HumanResources_Employee';
GO