Поделиться через


sys.sp_cdc_get_captured_columns (Transact-SQL)

Возвращает сведения о метаданных системы отслеживания измененных данных для исходных столбцов, отслеживаемых указанным экземпляром отслеживания. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

Значок ссылки на разделСинтаксические обозначения в 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 AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_get_captured_columns 
    @capture_instance = N'HumanResources_Employee';
GO