Megosztás a következőn keresztül:


sys.fn_cdc_get_min_lsn (Transact-SQL)

A következőkre vonatkozik:SQL Server

A megadott capture instance start_lsn oszlopértékét adja vissza a cdc.change_tables rendszer táblájából. Ez az érték a lefoglalási példány érvényességi intervallumának alacsony végpontját jelenti.

Transact-SQL szintaxis konvenciók

Szemantika

  
sys.fn_cdc_get_min_lsn ( 'capture_instance_name' )  

Arguments

'capture_instance_name'
Ez a capture instance neve. capture_instance_name a sysname.

Visszatérési típusok

bináris(10)

Megjegyzések

Akkor tér vissza 0x00000000000000000000, ha a capture instance nem létezik, vagy amikor a hívó nem jogosult hozzáférni a capture instance-hoz tartozó változtatási adatokhoz.

Ezt a függvényt általában arra használják, hogy azonosítsák a változásadat-rögzítési idővonal alacsony végpontját, amely egy capture instance-hoz kapcsolódik. Ezt a függvényt arra is használhatod, hogy ellenőrizd, hogy egy lekérdezési tartomány végpontjai a capture instance idővonalon belül vannak-e, mielőtt módosítási adatokat kérnél. Fontos ilyen ellenőrzéseket végezni, mert a capture instance alacsony végpontja változik, amikor a változási táblákon tisztítást végzenek. Ha a változtatási adatkérések közötti idő jelentős, még egy alacsony végpont is, amely az előző változási adatkérés magas végpontjára van állítva, kívül eshet a jelenlegi idővonalon.

Permissions

Tagság szükséges a rendszergazdák fix szerver szerepében vagy db_owner fix adatbázis szerepében. Az összes többi felhasználóhoz SELECT engedélyre van szükség a forrástábla összes rögzített oszlopához, és ha a rögzítési példányhoz egy beszűkítési szerepkör van meghatározva, akkor az adatbázis-szerepkör tagsága szükséges.

Példák

A. A megadott capture instance minimális LSN értékének visszaállítása

Az alábbi példa a AdventureWorks2025 adatbázisban a capture instance HumanResources_Employee minimális LSN értékét adja vissza.

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

B. Lekérdezési tartomány alacsony végpontjának ellenőrzése

A következő példa a minimum LSN értéket használja, amelyet vissza adott , sys.fn_cdc_get_min_lsn hogy ellenőrizze, hogy a változásadat lekérdezéshez javasolt alacsony végpont érvényes-e a jelenlegi idővonalra a capture instance HumanResources_Employeeesetében. Ez a példa feltételezi, hogy a capture instance korábbi magas végpontú LSN-jét elmentették, és elérhető a változó beállításához @save_to_lsn . A példa @save_to_lsn szempontjából a hibákezelési szakasz futtatására 0x000000000000000000 be van állítva.

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  

Lásd még:

sys.fn_cdc_get_max_lsn (Transact-SQL)
A tranzakciónapló (SQL Server)