sys.fn_cdc_increment_lsn (Transact-SQL)
指定された LSN の直後のログ シーケンス番号 (LSN) を返します。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで) |
構文
sys.fn_cdc_increment_lsn ( lsn_value )
引数
- lsn_value
LSN 値を指定します。 lsn_value のデータ型は binary(10) です。
戻り値の型
binary(10)
説明
この関数から返される LSN 値は、指定された値よりも必ず大きくなり、2 つの値の間に LSN 値は存在しません。
変更データを時間経過に沿って体系的にクエリするには、取得する変更の範囲を毎回変えながら、クエリ関数を定期的に呼び出す必要があります。 データの取得漏れを確実に防ぐ手段としては、前回のクエリの上限を基にして、後続のクエリの下限を決める方法がよく使用されます。 クエリ範囲は両端の値を含む閉区間となるため、新しい下限は、前回の上限よりも必ず大きく、かつ、新しい下限と前回の上限との間に、別の LSN 値を持った変更が入り込む余地のない程度に十分小さい値であることが必要です。 この値を取得するには、sys.fn_cdc_increment_lsn を使用します。
権限
public データベース ロールのメンバーシップが必要です。
使用例
次の例では、前回のクエリ時に保存した上限を @save\_to\_lsn 変数に格納し、それを sys.fn_cdc_increment_lsn 関数に渡すことによって、変更データ キャプチャ クエリに使用する新しい下限値を取得しています。
USE AdventureWorks2012;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10), @save_to_lsn binary(10);
SET @save_to_lsn = <previous_upper_bound_value>;
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);
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_decrement_lsn (Transact-SQL)
cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)
cdc.fn_cdc_get_net_changes_<capture_instance> (Transact-SQL)