sys.fn_cdc_has_column_changed (Transact-SQL)
Область применения: SQL Server
Определяет, указывает ли заданная маска обновления на обновление заданного столбца в связанной строке изменений.
Соглашения о синтаксисе 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)