sys.fn_cdc_increment_lsn (Transact-SQL)

Aplica-se a:SQL Server

Retorna o próximo LSN (número de sequência de log) da sequência com base no LSN especificado.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
sys.fn_cdc_increment_lsn ( lsn_value )  

Argumentos

lsn_value

Valor do LSN. lsn_value é binary(10).

Tipo de retorno

binary(10)

Comentários

O valor de LSN retornado pela função é sempre superior ao valor especificado e nenhum valor de LSN pode existir entre os dois valores.

Para consultar sistematicamente um fluxo de alteração de dados ao longo do tempo, você pode periodicamente repetir a função de chamada de consulta sempre especificando um novo intervalo de consulta para limitar as mudanças retornadas na consulta. Para garantir que nenhum dado seja perdido, o limite superior da consulta anterior é frequentemente usado para gerar o limite inferior da consulta subsequente. Como o intervalo de consulta é um intervalo fechado, o novo limite inferior deve ser maior do que o limite superior anterior, mas pequeno o suficiente para garantir que nenhuma alteração tenha valores de LSN que se enquadrem entre esse valor e o limite superior antigo. A função sys.fn_cdc_increment_lsn é usada para obter esse valor.

Permissões

Requer associação na função de banco de dados pública .

Exemplos

O exemplo a seguir usa sys.fn_cdc_increment_lsn para gerar um novo valor de limite inferior para uma consulta Change Data Capture com base no limite superior salvo de uma consulta anterior e salvo na variável @save_to_lsn.

USE AdventureWorks2022;  
GO  
DECLARE @from_lsn binary(10), @to_lsn binary(10), @save_to_lsn binary(10);  
SET @save_to_lsn = <previous_upper_bound_value>;  
SET @from_lsn = sys.fn_cdc_increment_lsn(@save_to_lsn);  
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  

Observação

O erro 313 é esperado se o intervalo LSN fornecido não for apropriado ao chamar cdc.fn_cdc_get_all_changes_<capture_instance> ou cdc.fn_cdc_get_net_changes_<capture_instance>. Se o lsn_value parâmetro estiver além do tempo do LSN mais baixo ou do LSN mais alto, a execução dessas funções retornará no erro 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Esse erro deve ser resolvido pelo desenvolvedor. O T-SQL de exemplo para uma solução alternativa pode ser encontrado no ReplTalk no GitHub.

Consulte Também