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_ordinalsys.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)