sys.fn_cdc_get_max_lsn

返回 cdc.lsn_time_mapping 系统表的 start_lsn 列中的最大日志序列号 (LSN)。您可以使用此函数为任何捕获实例返回变更数据捕获时间线的高端点。

主题链接图标Transact-SQL 语法约定

语法

sys.fn_cdc_get_max_lsn ()

返回类型

binary(10)

注释

此函数返回 cdc.lsn_time_mapping 表的 start_lsn 列中的最大 LSN。同样,它也是将更改传播到数据库更改表时捕获进程最后处理的 LSN。它用作与为数据库定义的捕获实例相关联的所有时间线的高端点。有关变更数据捕获时间线的详细信息,请参阅配置变更数据捕获

该函数通常用于获取查询间隔内的相应高端点。

权限

要求具有公用数据库角色的成员身份。

示例

A. 返回最大的 LSN 值

下例返回 AdventureWorks 数据库中所有捕获示例的最大 LSN。

USE AdventureWorks;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;

B. 设置查询范围的高端点

下面的示例使用 sys.fn_cdc_get_max_lsn 返回的最大 LSN 为捕获示例 HumanResources_Employee 设置查询范围的高端点。

USE AdventureWorks;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SET @from_lsn = sys.fn_cdc_get_min_lsn(N'HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SELECT * FROM cdc.fn_cdc_get_all_changes_HumanResources_Employee(@from_lsn, @to_lsn, 'all');
GO