sys.fn_cdc_get_max_lsn (Transact-SQL)
适用范围:SQL Server
返回cdc.lsn_time_mapping系统表中start_lsn列的最大日志序列号(LSN)。 您可以使用此函数为任何捕获实例返回变更数据捕获时间线的高端点。
语法
sys.fn_cdc_get_max_lsn ()
返回类型
binary(10)
注解
此函数返回cdc.lsn_time_mapping表start_lsn列中的最大 LSN。 同样,它也是将更改传播到数据库更改表时捕获进程最后处理的 LSN。 它用作与为数据库定义的捕获实例相关联的所有时间线的高端点。
该函数通常用于获取查询间隔内的相应高端点。
权限
要求具有公用数据库角色的成员身份。
示例
A. 返回最大的 LSN 值
以下示例返回 AdventureWorks2022 数据库中所有捕获实例的最大 LSN。
USE AdventureWorks2022;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;
B. 设置查询范围的高端点
下面的示例使用 sys.fn_cdc_get_max_lsn
返回的最大 LSN 为捕获示例 HumanResources_Employee
设置查询范围的高端点。
USE AdventureWorks2022;
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