sys.fn_cdc_increment_lsn (Transact-SQL)
適用於:SQL Server
根據指定的 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
是用來取得此值。
權限
需要公用資料庫角色的成員資格。
範例
下列範例會使用 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
。 開發人員應該處理此錯誤。