sys.fn_cdc_get_max_lsn (Transact-SQL)

cdc.lsn_time_mapping 系統資料表中的 start_lsn 資料行傳回最大記錄序號 (LSN)。您可以使用這個函數,針對任何擷取執行個體傳回異動資料擷取時間表的高端點。

主題連結圖示Transact-SQL 語法慣例

語法

sys.fn_cdc_get_max_lsn ()

傳回類型

binary(10)

備註

這個函數會傳回 cdc.lsn_time_mapping 資料表之 start_lsn 資料行中的最大 LSN。因此,它就是變更傳播至資料庫變更資料表時,由擷取處理序所處理的最後一個 LSN。此外,它會當做所有時間表 (與針對資料庫定義的擷取執行個體相關聯) 的高端點使用。如需異動資料擷取時間表的詳細資訊,請參閱<設定異動資料擷取>。

此函數通常是用來取得查詢間隔的適當高端點。

權限

需要 public 資料庫角色中的成員資格。

範例

A. 傳回最大的 LSN 值

下列範例會針對 AdventureWorks 資料庫中的所有擷取執行個體,傳回最大的 LSN。

USE AdventureWorks;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;

B. 設定查詢範圍的高端點

下列範例會使用 sys.fn_cdc_get_max_lsn 所傳回的最大 LSN 來設定 HumanResources_Employee 擷取執行個體之查詢範圍的高端點。

USE AdventureWorks;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SET @from_lsn = sys.fn_cdc_get_min_lsn(N'HumanResources_Employee');
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