Aracılığıyla paylaş


sys.fn_cdc_get_min_lsn (Transact-sql)

Döner start_lsnsütun değeri belirtilen yakalama örneği için cdc.change_tables sistem tablosu. Bu değer, yakalama örneği için geçerlilik aralığının düşük bitiş noktası temsil eder.

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

Sözdizimi

sys.fn_cdc_get_min_lsn ( 'capture_instance_name' )

Bağımsız değişkenler

  • 'capture_instance_name'
    Yakalama örneğinin adıdır. capture_instance_nameis sysname.

Dönüş Türleri

binary(10)

Açıklamalar

Döner 0x00000000000000000000 yakalama örneği yoksa veya arayan olmadığında yakalama örneğiyle ilişkili değişiklik veri erişim yetkisi.

Bu işlev genellikle düşük bitiş noktası yakalama örneğiyle ilişkili değişiklik veri yakalama çizelgesinin tanımlamak için kullanılır. Ayrıca, sorgu aralığının bitiş noktası Değiştir veri istemeden önce içinde yakalama örneğinin Zaman Çizelgesi'nde sonbahar doğrulamak için bu işlevi kullanabilirsiniz. Düşük bitiş noktası yakalama örneği Temizleme değişiklik tabloları üzerinde yapıldığında değiştirdiği gibi denetimleri gerçekleştirmek önemlidir. Değiştir veri istekleri arasındaki süreyi önemli ise, önceki değişiklik veri isteği yüksek bitiş noktası için ayarlanmış bile bir düşük bitiş noktası dışında geçerli zaman çizelgesi'nde yalan. Değişiklik veri yakalama zaman çizelgesi hakkında daha fazla bilgi için bkz: NIB - Configuring Change Data Capture.

İzinler

Üyelik sysadminsabit sunucu rolü veya db_ownerveritabanı rolü. Diğer tüm kullanıcılar için tüm yakalanan sütun kaynak tablo üzerinde select izni gerektirir ve yakalama örneği için gating rol tanımlanmışsa, bu üyelik veritabanı rolü.

Örnekler

A.Belirtilen yakalama örneği için en düşük lsn değer döndüren

Aşağıdaki örnek döndürür yakalama örneği için en düşük lsn değerini HumanResources_Employeede AdventureWorks2012veritabanı.

USE AdventureWorks2-12;
GO
SELECT sys.fn_cdc_get_min_lsn ('HumanResources_Employee')AS min_lsn;

USE AdventureWorks2-12;
GO
SELECT sys.fn_cdc_get_min_lsn ('HumanResources_Employee')AS min_lsn;

B.Sorgu aralığının düşük bitiş noktası doğrulanıyor

Aşağıdaki örnek tarafından döndürülen en düşük lsn değerini kullanır sys.fn_cdc_get_min_lsnDeğiştir veri sorgusu için önerilen düşük bitiş noktası yakalama örneği için geçerli zaman çizelgesi için geçerli olduğunu doğrulamak için HumanResources_Employee. Bu örnek varsayar önceki yüksek lsn için bitiş noktası yakalama örneği kaydedildi ve ayarlamak kullanılabilir @save\_to\_lsndeğişkeni. Bu örnek için @save\_to\_lsn0x000000000000000000 için zorla çalıştırmak için hata işleme bölümünde ayarlanır.

USE AdventureWorks2012;
GO
DECLARE @min_lsn binary(10), @from_lsn binary(10),@save_to_lsn binary(10), @to_lsn binary(10);
-- Sets @save_to_lsn to the previous high endpoint saved from the last change data request.
SET @save_to_lsn = 0x000000000000000000;
-- Sets the upper endpoint for the query range to the current maximum LSN.
SET @to_lsn = sys.fn_cdc_get_max_lsn();
-- Sets the @min_lsn parameter to the current minimum LSN for the capture instance.
SET @min_lsn = sys.fn_cdc_get_min_lsn ('HumanResources_Employee');
-- Sets the low endpoint for the query range to the LSN that follows the previous high endpoint.
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);
-- Tests to verify the low endpoint is valid for the current capture instance.
IF (@from_lsn < @min_lsn)
    BEGIN
        RAISERROR('Low endpoint of the request interval is invalid.', 16, -1);
    END
ELSE
-- Return the changes occurring within the query range.
    SELECT * FROM cdc.fn_cdc_get_all_changes_HumanResources_Employee(@from_lsn, @to_lsn, 'all');
GO

USE AdventureWorks2012;
GO
DECLARE @min_lsn binary(10), @from_lsn binary(10),@save_to_lsn binary(10), @to_lsn binary(10);
-- Sets @save_to_lsn to the previous high endpoint saved from the last change data request.
SET @save_to_lsn = 0x000000000000000000;
-- Sets the upper endpoint for the query range to the current maximum LSN.
SET @to_lsn = sys.fn_cdc_get_max_lsn();
-- Sets the @min_lsn parameter to the current minimum LSN for the capture instance.
SET @min_lsn = sys.fn_cdc_get_min_lsn ('HumanResources_Employee');
-- Sets the low endpoint for the query range to the LSN that follows the previous high endpoint.
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);
-- Tests to verify the low endpoint is valid for the current capture instance.
IF (@from_lsn < @min_lsn)
    BEGIN
        RAISERROR('Low endpoint of the request interval is invalid.', 16, -1);
    END
ELSE
-- Return the changes occurring within the query range.
    SELECT * FROM cdc.fn_cdc_get_all_changes_HumanResources_Employee(@from_lsn, @to_lsn, 'all');
GO

Ayrıca bkz.

Başvuru

sys.fn_cdc_get_max_lsn (Transact-sql)

Kavramlar

İşlem günlüğü (SQL Server)