sys.fn_cdc_increment_lsn (Transact-SQL)
Aplica-se: 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 é binário(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úblico .
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.