Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
cdc.change_tables sistem tablosundan belirtilen yakalama örneği için start_lsn sütun değerini döndürür. Bu değer, yakalama örneği için geçerlilik aralığının en düşük uç noktasını temsil eder.
Transact-SQL söz dizimi kuralları
Sözdizimi
sys.fn_cdc_get_min_lsn ( 'capture_instance_name' )
Arguments
'capture_instance_name'
Yakalama örneğinin adı.
capture_instance_namesysname.
Dönüş Türleri
ikili (10)
Açıklamalar
Yakalama örneği mevcut olmadığında veya arayan kişinin yakalama örneğiyle ilişkili değişiklik verilerine erişme yetkisi olmadığında 0x00000000000000000000 döner.
Bu fonksiyon genellikle bir yakalama örneğiyle ilişkili değişim veri yakalama zaman çizelgesinin düşük uç noktasını belirlemek için kullanılır. Ayrıca, değişiklik verisi talep etmeden önce bir sorgu aralığının uç noktalarının yakalama örneği zaman çizelgesi içinde olduğunu doğrulamak için bu fonksiyonu da kullanabilirsiniz. Bu tür kontrollerin yapılması önemlidir çünkü bir yakalama örneğinin düşük uç noktası, değişim tablolarında temizlik yapılırken değişir. Değişiklik veri talepleri arasındaki süre önemliyse, önceki değişiklik veri talebinin yüksek uç noktasına ayarlanmış düşük bir uç nokta bile mevcut zaman çizelgesinin dışında olabilir.
Permissions
Sistem yöneticisi sabit sunucu rolünde veya sabit db_owner veritabanı rolünde üyelik gerektirir. Diğer tüm kullanıcılar için, kaynak tablodaki tüm yakalanan sütunlarda SELECT izni ve yakalama örneği için bir gating rolü tanımlanmışsa bu veritabanı rolüne üyelik gerektirir.
Örnekler
A. Belirli bir yakalama örneği için minimum LSN değerini döndürmek
Aşağıdaki örnek, AdventureWorks2025 veritabanındaki yakalama örneği HumanResources_Employee için minimum LSN değerini döndürür.
USE AdventureWorks2-12;
GO
SELECT sys.fn_cdc_get_min_lsn ('HumanResources_Employee')AS min_lsn;
B. Bir sorgu aralığının düşük uç noktasının doğrulanması
Aşağıdaki örnek, bir değişiklik veri sorgusu için önerilen düşük uç noktanın yakalama örneği HumanResources_Employeeiçin mevcut zaman çizelgesi için geçerli olup olmadığını doğrulamak amacıyla sys.fn_cdc_get_min_lsn döndürülen minimum LSN değerini kullanır. Bu örnek, yakalama örneği için önceki yüksek uç nokta LSN'nin kaydedildiğini ve değişkeni @save_to_lsn ayarlamak için kullanılabilir olduğunu varsayar. Bu örnek için, @save_to_lsn hata işleme bölümünün çalıştırılmasını sağlamak için 0x000000000000000000 olarak ayarlanmıştır.
USE AdventureWorks2022;
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.
sys.fn_cdc_get_max_lsn (Transact-SQL)
İşlem Günlüğü (SQL Server)