sys.fn_cdc_increment_lsn (Transact-SQL)

適用於:SQL Server

根據指定的 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 是用來取得此值。

權限

需要公用 資料庫角色的成員 資格。

範例

下列範例會使用 sys.fn_cdc_increment_lsn ,根據從上一個查詢儲存的上限,為變更資料擷取查詢產生新的下限值,並儲存在 變數 @save_to_lsn 中。

USE AdventureWorks2022;  
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  

注意

如果呼叫 或 cdc.fn_cdc_get_net_changes_<capture_instance>cdc.fn_cdc_get_all_changes_<capture_instance> 提供的 LSN 範圍不適合,則預期會發生錯誤 313。 lsn_value如果 參數超出最低 LSN 或最高 LSN 的時間,則執行這些函式將會傳回錯誤 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function 。 開發人員應該處理此錯誤。 如需因應措施的範例 T-SQL,請參閱 GitHub 上的 ReplTalk。

另請參閱