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


sys.sp_cdc_get_captured_columns (Transact-SQL)

Область применения: SQL Server

Возвращает сведения о метаданных системы отслеживания измененных данных для исходных столбцов, отслеживаемых указанным экземпляром отслеживания. Запись измененных данных недоступна в каждом выпуске SQL Server. Список функций, поддерживаемых выпусками SQL Server, см. в выпусках и поддерживаемых функциях SQL Server 2022.

Соглашения о синтаксисе 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 (сбой).

Результирующий набор

Имя столбца Тип данных Description
source_schema sysname Имя схемы исходной таблицы.
source_table sysname Имя исходной таблицы.
capture_instance sysname Имя экземпляра отслеживания.
column_name sysname Имя отслеживаемого исходного столбца данных.
column_id int Идентификатор столбца в исходной таблице.
column_ordinal 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 Точность столбца в зависимости от даты и времени; NULLв противном случае .

Замечания

Используется sys.sp_cdc_get_captured_columns для получения сведений о захваченных столбцах, возвращаемых путем запроса функций запроса экземпляра записи cdc.fn_cdc_get_all_changes_<capture_instance> или cdc.fn_cdc_get_net_changes_<capture_instance.> Имена, идентификаторы и положение столбцов не изменяются в течение всего времени существования экземпляра отслеживания. Изменяется только тип данных столбца, если изменяется тип данных базового исходного столбца отслеживаемой таблицы. Столбцы, которые добавляются в исходную таблицу или удаляются из нее, не влияют на захваченные столбцы существующих экземпляров захвата.

Используйте sys.sp_cdc_get_ddl_history для получения сведений о операторах языка определения данных (DDL), применяемых к исходной таблице. Результирующий набор содержит сведения обо всех изменениях DDL, изменивших структуру отслеживаемого исходного столбца.

Разрешения

Требуется членство в предопределенной роли базы данных db_owner. Всем остальным пользователям необходимо разрешение SELECT для всех отслеживаемых столбцов в исходной таблице. Кроме того, если для экземпляра отслеживания была определена шлюзовая роль, требуется членство в этой роли базы данных. Если вызывающий объект не имеет разрешения на просмотр исходных данных, функция возвращает ошибку 22981 (Object doesn't exist or access is denied.).

Примеры

В следующем примере извлекается информация о столбцах, обрабатываемых экземпляром отслеживания HumanResources_Employee.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_get_captured_columns
    @capture_instance = N'HumanResources_Employee';
GO