Поделиться через


sys.fn_cdc_get_max_lsn (Transact-SQL)

Возвращает максимальный регистрационный номер транзакции в журнале (номер LSN) из столбца start_lsn в системной таблице cdc.lsn_time_mapping. Эту функцию можно использовать для возврата верхней конечной точки временной шкалы системы отслеживания измененных данных для любого экземпляра отслеживания.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sys.fn_cdc_get_max_lsn ()

Типы возвращаемых данных

binary(10)

Замечания

Эта функция возвращает максимальный номер LSN в столбце start_lsn таблицы cdc.lsn_time_mapping. Этот последний номер LSN, обрабатываемый процессом отслеживания, когда изменения передаются в таблицы изменений базы данных. Он служит в качестве верхней конечной точки для любой временной шкалы, связанной с экземплярами отслеживания, определенными для базы данных. Дополнительные сведения о временной шкале в системе отслеживания измененных данных см. в разделе Настройка системы отслеживания измененных данных.

Эта функция обычно используется, чтобы получить подходящую верхнюю конечную точку для интервала запроса.

Разрешения

Требует членства в роли базы данных public.

Примеры

А. Возвращение максимального значения номера LSN

В следующем примере возвращается максимальное значение номера LSN для всех экземпляров отслеживания в базе данных AdventureWorks2008R2.

USE AdventureWorks2008R2;
GO
SELECT sys.fn_cdc_get_max_lsn()AS max_lsn;

Б. Установка верхней конечной точки запроса по диапазону

В следующем примере номер LSN, возвращенный функцией sys.fn_cdc_get_max_lsn, используется для установки верхней конечной точки запроса по диапазону для экземпляра отслеживания HumanResources_Employee.

USE AdventureWorks2008R2;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SET @from_lsn = sys.fn_cdc_get_min_lsn(N'HumanResources_Employee');
SET @to_lsn = sys.fn_cdc_get_max_lsn();
SELECT * FROM cdc.fn_cdc_get_all_changes_HumanResources_Employee(@from_lsn, @to_lsn, 'all');
GO