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


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 AdventureWorks;
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