sys.fn_cdc_decrement_lsn (Transact-SQL)

Применимо к:SQL Server

Возвращает предыдущий регистрационный номер транзакции в журнале (LSN) в последовательности, основанной на заданном номере LSN.

Соглашения о синтаксисе Transact-SQL

Синтаксис

  
sys.fn_cdc_decrement_lsn ( lsn_value )  

Аргументы

lsn_value

Значение LSN. lsn_value является двоичным(10).

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

binary(10)

Замечания

Номер LSN, возвращаемый этой функцией, всегда меньше указанного значения, и между этими двумя значениями не могут существовать другие номера LSN.

Разрешения

Требуется членство в роли общедоступной базы данных.

Примеры

В следующем примере функция sys.fn_cdc_decrement_lsn используется для установки верхней границы номеров LSN в запросе, возвращающем строки информации об изменениях, имеющих номера LSN меньше максимального значения LSN.

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

Заметка

Ошибка 313 ожидается, если диапазон LSN не подходит при вызове cdc.fn_cdc_get_all_changes_<capture_instance> или cdc.fn_cdc_get_net_changes_<capture_instance>. lsn_value Если параметр выходит за пределы времени наименьшего LSN или самого высокого LSN, выполнение этих функций возвращается в ошибке 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function Эта ошибка должна быть обработана разработчиком. Пример T-SQL для обходного решения можно найти в ReplTalk на сайте GitHub.

См. также