次の方法で共有


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)