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


sys.fn_cdc_has_column_changed (Transact-SQL)

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

Значок ссылки на раздел Синтаксические обозначения 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

Замечания

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

Если эти сведения возвращаются как часть запроса информации об изменениях, рекомендуется вместо этой функции использовать функции 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 для всех отслеживаемых столбцов в исходной таблице. Кроме того, если для экземпляра отслеживания была определена шлюзовая роль, требуется членство в этой роли базы данных.

См. также

Справочник

cdc.<capture_instance>_CT (Transact-SQL)

cdc.captured_columns (Transact-SQL)