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


sys.fn_cdc_is_bit_set (Transact-SQL)

Указывает, был ли обновлен отслеживаемый столбец, проверяя установку его порядкового положения в битовой маске.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

sys.fn_cdc_is_bit_set ( position , update_mask )

Аргументы

  • position
    Порядковое положение в битовой маске. Аргумент position имеет тип int.

  • update_mask
    Маска, идентифицирующая обновленные столбцы. Аргумент update_mask имеет тип varbinary(128).

Возвращаемый тип

bit

Замечания

Эта функция обычно используется как часть запроса изменения данных для определения изменения столбца. В этом сценарии функция sys.fn_cdc_get_column_ordinal используется перед запросом для получения порядкового номера нужного столбца. Затем функция sys.fn_cdc_is_bit_set применяется ко всем строкам возвращенных измененных данных, что дает в составе возвращенного результирующего набора сведения по каждому конкретному столбцу.

Рекомендуется использовать эту функцию вместо функции sys.fn_cdc_has_column_changed для определения, изменились ли столбцы всех строк возвращенного результирующего набора.

Разрешения

Необходимо быть членом роли public.

Примеры

В следующем примере функция sys.fn_cdc_is_bit_set используется для присоединения к результирующему набору, созданному функцией запроса cdc.fn_cdc_get_all_changes_HR_Department, столбца IsGroupNmUpdated с помощью предварительно вычисленного порядкового номера столбца и значения __$update_mask в качестве аргументов.

USE AdventureWorks2012;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @GroupNm_ordinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HR_Department');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @GroupNm_ordinal = sys.fn_cdc_get_column_ordinal('HR_Department','GroupName');

SELECT sys.fn_cdc_is_bit_set(@GroupNm_ordinal,__$update_mask) as 'IsGroupNmUpdated', *
FROM cdc.fn_cdc_get_all_changes_HR_Department( @from_lsn, @to_lsn, 'all')
WHERE __$operation = 4;
GO

См. также

Справочник

Функции системы отслеживания измененных данных (Transact-SQL)

sys.fn_cdc_get_column_ordinal (Transact-SQL)

sys.fn_cdc_has_column_changed (Transact-SQL)

cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)

cdc.fn_cdc_get_net_changes_<capture_instance> (Transact-SQL)

Основные понятия

Об отслеживании измененных данных (SQL Server)