sys.fn_cdc_increment_lsn (Transact-SQL)

根据指定的 LSN 返回序列中的下一个日志序列号 (LSN)。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

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

语法

sys.fn_cdc_increment_lsn ( lsn_value )

参数

  • lsn_value
    LSN 值。 lsn_value 的数据类型为 binary(10)。

返回类型

binary(10)

注释

此函数返回的 LSN 值始终大于指定的值,并且不存在介于这两个值之间的 LSN 值。

若要系统地查询随时间变化的更改数据流,可以定期重复调用该查询函数,每次调用时指定一个新的查询间隔来限定查询中返回的更改的范围。 为帮助确保不丢失数据,通常使用前一个查询的上限来生成后一个查询的下限。 由于查询间隔是一个闭区间,因此新的下限必须大于前一个上限,但要足够小,以确保不存在 LSN 值介于此值与旧上限之间的更改。 函数 sys.fn_cdc_increment_lsn 用于获取此值。

权限

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

示例

下例将前一个查询的上限保存到变量 @save\_to\_lsn 中,然后根据此上限使用 sys.fn_cdc_increment_lsn 来生成变更数据捕获查询的新下限值。

USE AdventureWorks2012;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @save_to_lsn binary(10);
SET @save_to_lsn = <previous_upper_bound_value>;
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);
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

请参阅

参考

sys.fn_cdc_decrement_lsn (Transact-SQL)

cdc.fn_cdc_get_all_changes_<捕获实例> (Transact-SQL)

cdc.fn_cdc_get_net_changes_<capture_instance> (Transact-SQL)

概念

事务日志 (SQL Server)

关于变更数据捕获 (SQL Server)