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


sys.fn_cdc_has_column_changed

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

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

Синтаксис

sys.fn_cdc_has_column_changed ( 'capture_instance','column_name' , update_mask )

Аргументы

  • 'capture_instance'
    Имя экземпляра отслеживания. Аргумент capture_instance имеет тип sysname.

  • 'column_name'
    Отслеживаемый столбец заданного экземпляра отслеживания. Аргумент column_name имеет тип sysname.

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

Тип возвращаемых данных

bit

Замечания

Эту функцию можно использовать для получения сведений из маски обновления, которая возвращается в запросе данных изменений. Она особенно полезна во время последующей обработки маски обновления, когда нужно определить, изменился ли конкретный столбец в связанной строке изменений. Дополнительные сведения см. в разделе Получение и интерпретация измененных данных.

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

Разрешения

Необходимо членство в предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner. Всем остальным пользователям необходимо разрешение SELECT для всех отслеживаемых столбцов в исходной таблице. Кроме того, если для экземпляра отслеживания была определена шлюзовая роль, требуется членство в этой роли базы данных.