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


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)