sys.fn_cdc_get_column_ordinal (Transact-SQL)
适用于:SQL Server
返回指定列在与指定捕获实例关联的 更改表中 显示的列序号。
语法
sys.fn_cdc_get_column_ordinal ( 'capture_instance','column_name')
参数
“capture_instance”
捕获实例的名称,在该实例中指定列被标识为已捕获列。 capture_instance 为 sysname。
“column_name”
要报告的列。 column_name 为 sysname。
返回类型
int
备注
此函数用于标识变更数据捕获更新掩码内的已捕获列的序号位置。 它主要与 函数 sys.fn_cdc_is_bit_set 结合使用,以便在查询更改数据时从更新掩码中提取信息。
权限
需要对源表的所有捕获列具有 SELECT 权限。 如果对捕获实例指定了变更数据捕获组件的数据库角色,则同时需要具有该角色的成员身份。
示例
以下示例将获取 VacationHours
捕获实例更新掩码中的 HumanResources_Employee
列的序号位置。 然后将在调用 sys.fn_cdc_is_bit_set
时使用该值以从返回的更新掩码中提取信息。
USE AdventureWorks2022;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @VacationHoursOrdinal int;
SET @from_lsn = sys.fn_cdc_get_min_lsn('HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SET @VacationHoursOrdinal = sys.fn_cdc_get_column_ordinal
( 'HumanResources_Employee','VacationHours');
SELECT *, sys.fn_cdc_is_bit_set(@VacationHoursOrdinal,
__$update_mask) as 'VacationHours'
FROM cdc.fn_cdc_get_net_changes_HumanResources_Employee
( @from_lsn, @to_lsn, 'all with mask');
GO
另请参阅
变更数据捕获函数 (Transact-SQL)
关于变更数据捕获 (SQL Server)
sys.sp_cdc_help_change_data_capture (Transact-SQL)
sys.sp_cdc_get_captured_columns (Transact-SQL)
sys.fn_cdc_is_bit_set (Transact-SQL)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈