sys.sp_cdc_get_captured_columns (Transact-SQL)
Возвращает сведения о метаданных системы отслеживания измененных данных для исходных столбцов, отслеживаемых указанным экземпляром отслеживания. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.
Синтаксис
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
См. также