Share via


sys.fn_cdc_map_time_to_lsn (Transact-sql)

Günlük sıra numarası (lsn) değeri döndürür start_lsn sütununda cdc.lsn_time_mapping sistem tablosunda belirtilen süre için. Sistematik değişiklik veri yakalama numaralandırma işlevleri tarafından gerekli lsn geçerli aralığın içine datetime aralıkları eşlemek için bu işlevi kullanabilirsiniz cdc.fn_cdc_get_all_changes_<capture_instance > ve değiştirir<capture_instance > Bu aralıkta veri değişiklikleri geri dönmek.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sys.fn_cdc_map_time_to_lsn ( '<relational_operator>', tracking_time )

<relational_operator> ::=
{  largest less than
 | largest less than or equal
 | smallest greater than
 | smallest greater than or equal
}

Bağımsız değişkenler

  • '<relational_operatornvarchar(30)>' {daha az en büyük | eşit veya daha az en büyük | en küçük değerden | en küçük büyük veya eşit}
    İçinde ayrı lsn değeri tanımlamak için kullanılan cdc.lsn_time_mapping ile ilişkili bir tablo tran_end_timecdc.lsn_time_mapping karşılaştırıldığında ilişkisi karşılayan tracking_timedeğer.

    relational_operatoris nvarchar(30).

  • tracking_time
    Karşı eşleştirilecek değeridir. tracking_timeis datetime.

Dönüş Türü

binary(10)

Açıklamalar

Anlamaya nasıl sys.fn_cdc_map_time_lsn datetime aralıkları göster lsn aralığı için aşağıdaki senaryoyu düşünün için kullanılabilir. Tüketici günlük değişiklik veri ayıklamak istediğini varsayalım. Yani, tüketiciye verilen gün ila ve dahil olmak üzere gece yarısı için yalnızca değişiklikler istiyor. Zaman aralığının alt sınırı kadar önceki gün gece yarısından dahil değil ama olacaktır. Üst sınır, belirli gününde gece yarısından (dahil) kadar olacaktır. Aşağıdaki örnekte gösterildiği nasıl işlev sys.fn_cdc_map_time_to_lsn sistematik olarak bu aralıktaki tüm değişiklikleri geri dönmek için değişiklik veri yakalama numaralandırma işlevleri tarafından gerekli lsn geçerli aralığın içine bu zamana dayalı aralığını eşleştirmek için kullanılabilir.

DECLARE @begin\_time datetime, @end\_time datetime, @begin\_lsn binary(10), @end\_lsn binary(10);

SET @begin\_time = '2007-01-01 12:00:00.000';

SET @end\_time = '2007-01-02 12:00:00.000';

SELECT @begin\_lsn = sys.fn_cdc_map_time_to_lsn('smallest greater than', @begin\_time);

SELECT @end\_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal', @end\_time);

SELECT * FROM cdc.fn_cdc_get_net_changes_HR_Department(@begin_lsn, @end\_lsn, 'all');

İlişkisel işleç 'smallest greater than' Bu after midnight önceki gün meydana gelen değişiklikleri kısıtlamak için kullanılır. Birden çok girdi ile farklı lsn değerler ise pay tran_end_timecdc.lsn_time_mapping alt sınır olarak belirlenen değeri cdc.lsn_time_mapping tablo fonksiyonu tüm girişleri dahil sağlanması en küçük lsn dönecektir. İçin üst bağlı, ilişkisel işleç 'largest less than or equal to' Aralık günü gece yarısı olarak daha dahil tüm girişleri içerir emin olmak için kullanılan kendi tran_end_timecdc.lsn_time_mapping değer. Birden çok girdi ile farklı lsn değerler ise pay tran_end_timecdc.lsn_time_mapping işlevi üst sınır belirlenen değeri döndürür tüm girişleri dahil sağlanması büyük lsn.

İzinler

Üyelik Genel rolü.

Örnekler

Aşağıdaki örnek sys.fn_cdc_map_time_lsnherhangi bir satır olup olmadığını belirlemek için işlevi cdc.lsn_time_mapping tablo ile bir tran_end_timecdc.lsn_time_mapping yarısına eşit veya daha büyük olan değer. Bu sorgu, örneğin, değiştirme çıkarılması böylece veri o gün için yakalama işlemini through midnight önceki gün kabul edilen değişiklikler işlenmiş olup devam belirlemek için kullanılabilir.

DECLARE @extraction_time datetime, @lsn binary(10);
SET @extraction_time = '2007-01-01 12:00:00.000';
SELECT @lsn = sys.fn_cdc_map_time_to_lsn ('smallest greater than or equal', @extraction_time);
IF @lsn IS NOT NULL
BEGIN
<some action>
END

DECLARE @extraction_time datetime, @lsn binary(10);
SET @extraction_time = '2007-01-01 12:00:00.000';
SELECT @lsn = sys.fn_cdc_map_time_to_lsn ('smallest greater than or equal', @extraction_time);
IF @lsn IS NOT NULL
BEGIN
<some action>
END

Ayrıca bkz.

Başvuru

CDC.lsn_time_mapping (Transact-sql)

kullanır.sys.fn_cdc_map_lsn_to_timeBelirtilen (Transact-sql)

değiştirir<capture_instance> (Transact-sql)

CDC.fn_cdc_get_all_changes_<capture_instance> (Transact-sql)