sys.fn_cdc_get_max_lsn (Transact-SQL)

適用対象:SQL Server

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 値を取得する

次の例では、AdventureWorks2022 データベース内のすべてのキャプチャ インスタンスの最大 LSN を返します。

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

B. クエリ範囲の高エンドポイントの設定

次の例では、sys.fn_cdc_get_max_lsn によって返された最大 LSN を使用して、キャプチャ インスタンス HumanResources_Employee に対するクエリ範囲の上端を設定します。

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

参照

sys.fn_cdc_get_min_lsn (Transact-SQL)
トランザクション ログ (SQL Server)