Bagikan melalui


sys.fn_cdc_increment_lsn (T-SQL)

Berlaku untuk:SQL Server

Mengembalikan angka urutan log berikutnya (LSN) dalam urutan berdasarkan LSN yang ditentukan.

Konvensi sintaks transact-SQL

Sintaks

  
sys.fn_cdc_increment_lsn ( lsn_value )  

Argumen

lsn_value

Nilai LSN. lsn_value adalah biner(10).

Jenis Hasil

biner(10)

Keterangan

Nilai LSN yang dikembalikan oleh fungsi selalu lebih besar dari nilai yang ditentukan, dan tidak ada nilai LSN di antara dua nilai.

Untuk mengkueri aliran data perubahan secara sistematis dari waktu ke waktu, Anda dapat mengulangi panggilan fungsi kueri secara berkala, setiap kali menentukan interval kueri baru untuk mengikat perubahan yang dikembalikan dalam kueri. Untuk membantu memastikan bahwa tidak ada data yang hilang, batas atas untuk kueri sebelumnya sering digunakan untuk menghasilkan batas bawah untuk kueri berikutnya. Karena interval kueri adalah interval tertutup, batas bawah baru harus lebih besar dari batas atas sebelumnya, tetapi cukup kecil untuk memastikan tidak ada perubahan yang memiliki nilai LSN yang terletak di antara nilai ini dan batas atas lama. Fungsi sys.fn_cdc_increment_lsn ini digunakan untuk mendapatkan nilai ini.

Izin

Memerlukan keanggotaan dalam peran database publik .

Contoh

Contoh berikut menggunakan sys.fn_cdc_increment_lsn untuk menghasilkan nilai terikat bawah baru untuk kueri pengambilan data perubahan berdasarkan batas atas yang disimpan dari kueri sebelumnya dan disimpan dalam variabel @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  

Catatan

Kesalahan 313 diharapkan jika rentang LSN yang disediakan tidak sesuai saat memanggil cdc.fn_cdc_get_all_changes_<capture_instance> atau cdc.fn_cdc_get_net_changes_<capture_instance>. lsn_value Jika parameter berada di luar waktu LSN terendah atau LSN tertinggi, maka eksekusi fungsi-fungsi ini akan kembali dalam kesalahan 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Kesalahan ini harus ditangani oleh pengembang. Sampel T-SQL untuk solusi dapat ditemukan di ReplTalk di GitHub.

Lihat Juga