Udostępnij za pośrednictwem


sys.fn_cdc_get_min_lsn (Transact-SQL)

Zwraca wartość kolumna start_lsn wystąpienie określonego przechwytywania z CDC.change_tables tabela systemowa.Wartość ta oznacza niskiej końca interwału dla danego wystąpienie przechwytywania.

Topic link iconKonwencje składni języka Transact-SQL

sys.fn_cdc_get_min_lsn ( 'capture_instance_name' )

Argumenty

  • 'capture_instance_name'
    Is the name of the capture instance.capture_instance_name is sysname.

Zwracane typy

binary(10)

Remarks

Zwraca 0x00000000000000000000 podczas przechwytywania wystąpienie nie istnieje, lub gdy obiekt wywołujący nie jest upoważniony do dostępu do danych zmiana skojarzonego z wystąpieniem przechwytywania.

Ta funkcja jest zazwyczaj używana do identyfikacji dolnego punktu końcowego osi czasu przechwytywania danych zmiany skojarzonej z wystąpieniem przechwytywania.Przy użyciu tej funkcji można ponadto zweryfikować, przed zażądaniem danych zmiany, czy punkty końcowe zakresu kwerendy wypadają wewnątrz osi czasu przechwytywania.Ta weryfikacja jest o tyle istotna, że dolny punkt końcowy wystąpienia przechwytywania zmienia się po wyczyszczeniu tabel zmiany.W przypadku dużej różnicy czasu między żądaniami danych zmiany nawet dolny punkt końcowy wynoszący tyle, co górny punkt końcowy poprzedniego żądania danych zmiany, może wypadać poza bieżącą osią czasu.Aby uzyskać więcej informacji dotyczących osi czasu przechwytywania danych zmiany, zobacz Konfigurowanie Zmień przechwytywanie danych.

Uprawnienia

Wymaga członkostwo w grupie administratorów serwera stały lub ustalić rola bazy danych db_owner.W przypadku wszystkich innych użytkowników wymaga uprawnienie SELECT do wszystkich przechwyconych kolumn w tabela źródłowej i zdefiniowano bramkowania roli dla wystąpienie przechwytywania członkostwo w tej bazy danych roli.

Przykłady

A.Zwraca minimalną wartość LSN wystąpienie określonego przechwytywania

W poniższym przykładzie zwraca minimalną wartość LSN wystąpienie przechwytywania HumanResources_Employee w AdventureWorks Baza danych.

USE AdventureWorks;
GO
SELECT sys.fn_cdc_get_min_lsn ('HumanResources_Employee')AS min_lsn;

B.Weryfikowanie niskie punkt końcowy zakres kwerendy

W poniższym przykładzie użyto minimalną wartość LSN zwrócone przez sys.fn_cdc_get_min_lsn Aby sprawdzić, czy proponowane niskie punktu końcowego w przypadku zmiany danych kwerendy jest prawidłowy dla bieżącej osi czasu wystąpienie przechwytywania HumanResources_Employee. W tym przykładzie założono, że poprzednie końcowy wysokiej LSN dla wystąpienie przechwytywania został zapisany i jest dostępny dla zestaw @save\_to\_lsn Zmienna. Dla celów tego przykładu @save\_to\_lsn ustawiono 0x000000000000000000 wymusić sekcji obsługi błędów, aby uruchomić.

USE AdventureWorks;
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