sys.fn_cdc_get_column_ordinal (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 AdventureWorks2008R2;
GO
DECLARE @VacationHoursOrdinal int;
SET @VacationHoursOrdinal =
sys.fn_cdc_get_column_ordinal ( 'HumanResources_Employee','VacationHours');
SELECT sys.fn_cdc_is_bit_set(@VacationHoursOrdinal, __$update_mask)
as 'VacationHoursChanged', *
FROM cdc.fn_get_net_changes_HumanResources_Employee
(@from_lsn, @to_lsn, 'all with mask');
GO