sys.fn_cdc_increment_lsn (Transact-SQL)

根據指定的記錄序號 (LSN),傳回序列中的下一個 LSN。

主題連結圖示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 AdventureWorks2008R2;
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