Sdílet prostřednictvím


sys.fn_cdc_get_min_lsn (Transact-SQL)

platí pro:SQL Server

Vrací hodnotu sloupce start_lsn pro specifikovanou instanci zachycení z tabulky cdc.change_tables systému. Tato hodnota představuje nízký konec intervalu platnosti pro zachycení instance.

Transact-SQL konvence syntaxe

Syntaxe

  
sys.fn_cdc_get_min_lsn ( 'capture_instance_name' )  

Arguments

'capture_instance_name'
Je název instance zachycení. capture_instance_name je sysname.

Návratové typy

binární(10)

Poznámky

Vrací 0x00000000000000000000, když instance zachycení neexistuje nebo když volající není oprávněn přistupovat ke změnovým datům spojeným s danou instancí.

Tato funkce se obvykle používá k identifikaci nízkého koncového bodu časové osy zachycení změn dat spojené se zachycením instance. Tuto funkci můžete také použít k ověření, že koncové body rozsahu dotazů spadají do časové osy instance zachycení, než požádáte o data změny. Je důležité takové kontroly provádět, protože nízký koncový bod instance zachycení se změní, když je prováděno čištění na změnových tabulkách. Pokud je čas mezi požadavky na data o změnu významný, i nízký koncový bod nastavený na vysoký bod předchozího požadavku na data může ležet mimo aktuální časovou osu.

Povolení

Vyžaduje členství v roli správce systému nebo v roli pevného správce db_owner databázi. Pro všechny ostatní uživatele vyžaduje oprávnění SELECT pro všechny zachycené sloupce ve zdrojové tabulce a pokud byla definována role gating pro instanci zachycení, členství v této databázové roli.

Examples

A. Vrácení minimální hodnoty LSN pro specifikovanou instanci zachycení

Následující příklad vrací minimální hodnotu LSN pro zachycenou instanci HumanResources_Employee v databázi AdventureWorks2025.

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

B. Ověření nízkého koncového bodu dotazovacího rozsahu

Následující příklad využívá minimální hodnotu LSN vrácenou , sys.fn_cdc_get_min_lsn aby ověřil, že navrhovaný nízký koncový bod pro dotaz na změnu dat je platný pro aktuální časovou osu pro zachycení instance HumanResources_Employee. Tento příklad předpokládá, že předchozí LSN s vysokým koncovým body pro zachycení instance byl uložen a je k dispozici pro nastavení @save_to_lsn proměnné. Pro účely tohoto příkladu je nastaveno @save_to_lsn na 0x000000000000000000 pro vyvolání sekce pro zpracování chyb.

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  

Viz také

sys.fn_cdc_get_max_lsn (Transact-SQL)
Transakční protokol (SQL Server)