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