sys.fn_cdc_get_column_ordinal (Transact-SQL)
Область применения: SQL Server
Возвращает порядковый номер столбца указанного столбца, как он отображается в таблице изменений, связанной с указанным экземпляром записи.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.fn_cdc_get_column_ordinal ( 'capture_instance','column_name')
Аргументы
' capture_instance '
Имя экземпляра отслеживания, в котором заданный столбец определен как отслеживаемый. capture_instance — sysname.
' column_name '
Столбец для отчета. column_name — sysname.
Тип возвращаемых данных
int
Замечания
Эта функция используется для определения порядкового номера отслеживаемого столбца в маске обновления системы отслеживания измененных данных. Он главным образом используется в сочетании с функцией sys.fn_cdc_is_bit_set для извлечения информации из маски обновления при запросе данных об изменениях.
Разрешения
Необходимо разрешение SELECT на все отслеживаемые столбцы в исходной таблице. Если в экземпляре отслеживания задана роль для компонента системы отслеживания измененных данных, также требуется членство в этой роли.
Примеры
Следующий пример получает порядковый номер столбца VacationHours
в маске обновления для экземпляра отслеживания HumanResources_Employee
. Затем это значение используется для вызова функции sys.fn_cdc_is_bit_set
, которая получает сведения из возвращаемой маски обновления.
USE AdventureWorks2022;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @VacationHoursOrdinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @VacationHoursOrdinal = sys.fn_cdc_get_column_ordinal
( 'HumanResources_Employee','VacationHours');
SELECT *, sys.fn_cdc_is_bit_set(@VacationHoursOrdinal,
__$update_mask) as 'VacationHours'
FROM cdc.fn_cdc_get_net_changes_HumanResources_Employee
( @from_lsn, @to_lsn, 'all with mask');
GO
См. также
Функции отслеживания измененных данных (Transact-SQL)
Отслеживание измененных данных (SQL Server)
sys.sp_cdc_help_change_data_capture (Transact-SQL)
sys.sp_cdc_get_captured_columns (Transact-SQL)
sys.fn_cdc_is_bit_set (Transact-SQL)