sys.fn_cdc_increment_lsn (Transact-SQL)
根據指定的記錄序號 (LSN),傳回序列中的下一個 LSN。
語法
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 AdventureWorks;
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