次の方法で共有


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