sys.fn_cdc_get_max_lsn (Transact-SQL)
cdc.lsn_time_mapping システム テーブルの start_lsn 列から最大ログ シーケンス番号 (LSN) を返します。 この関数を使用すると、任意のキャプチャ インスタンスについて、変更データ キャプチャ タイムラインの上端を取得できます。
構文
sys.fn_cdc_get_max_lsn ()
戻り値の型
binary(10)
説明
この関数は、cdc.lsn_time_mapping テーブルの start_lsn 列から最大 LSN を返します。 変更がデータベース変更テーブルに反映されたときに、キャプチャ プロセスで最後に処理された LSN になります。 これは、データベースに対して定義されているキャプチャ インスタンスに関連付けられたすべてのタイムラインの上端として使用されます。
通常は、関数を使用してクエリ範囲に対する適切な上端を取得します。
権限
public データベース ロールのメンバーシップが必要です。
使用例
A. 最大 LSN 値を取得する
次の例は、AdventureWorks2012 データベース内のすべてのキャプチャ インスタンスの最大 LSN を返します。
USE AdventureWorks2012;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;
B. クエリ範囲の上端を設定する
次の例では、sys.fn_cdc_get_max_lsn によって返された最大 LSN を使用して、キャプチャ インスタンス HumanResources_Employee に対するクエリ範囲の上端を設定します。
USE AdventureWorks2012;
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)