Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Pembungkus untuk fungsi kueri perubahan bersih. Skrip yang diperlukan untuk membuat fungsi-fungsi ini dihasilkan oleh prosedur tersimpan sys.sp_cdc_generate_wrapper_function . Untuk informasi selengkapnya tentang prosedur tersimpan yang digunakan untuk membuat sys.fn_net_changes_<capture_instance>, lihat sys.sp_cdc_generate_wrapper_function (Transact-SQL).
Sintaks
fn_net_changes_<capture_instance> ('start_time', 'end_time', '<row_filter_option>' )
<capture_instance> ::= The name of the capture instance.
<row_filter_option> ::=
{ all
| all with mask
| all with merge
}
Argumen
start_time
Nilai tanggalwaktu yang mewakili titik akhir rendah dari rentang entri tabel perubahan untuk disertakan dalam tataan hasil.
Hanya baris dalam cdc.<capture_instance>_CT tabel perubahan yang memiliki waktu penerapan terkait yang benar-benar lebih besar dari start_time yang disertakan dalam tataan hasil.
Jika nilai NULL disediakan untuk argumen ini, titik akhir rendah rentang kueri akan sesuai dengan titik akhir rendah rentang yang valid untuk instans pengambilan.
Jika nilai salah satu @start_time atau @end_time parameter berada di luar waktu LSN terendah atau LSN tertinggi, maka eksekusi fungsi pembungkus yang dihasilkan 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.
end_time
Nilai tanggalwaktu yang mewakili titik akhir tinggi dari rentang entri tabel perubahan untuk disertakan dalam tataan hasil.
Parameter ini dapat mengambil salah satu dari dua arti, tergantung pada nilai yang dipilih @closed_high_end_point ketika sys.sp_cdc_generate_wrapper_function dipanggil untuk menghasilkan skrip untuk membuat fungsi pembungkus:
@closed_high_end_point = 1
Hanya baris dalam
cdc.<capture_instance>_CTtabel perubahan yang memiliki nilai dalam __$start_lsn dan waktu penerapan yang sesuai kurang dari atau sama dengan start_time yang disertakan dalam tataan hasil.@closed_high_end_point = 0
Hanya baris dalam
cdc.<capture_instance>_CTtabel perubahan yang memiliki nilai dalam __$start_lsn dan waktu penerapan yang sesuai yang benar-benar kurang dari start_time yang disertakan dalam tataan hasil.
Jika nilai NULL disediakan untuk argumen ini, titik akhir tinggi rentang kueri akan sesuai dengan titik akhir tinggi dari rentang yang valid untuk instans pengambilan.
Jika nilai salah satu @start_time atau @end_time parameter berada di luar waktu LSN terendah atau LSN tertinggi, maka eksekusi fungsi pembungkus yang dihasilkan 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.
< > row_filter_option ::= { all | all with mask | all with merge }
Opsi yang mengatur konten kolom metadata serta baris yang dikembalikan dalam tataan hasil. Bisa menjadi salah satu opsi berikut:
all
Mengembalikan konten akhir baris yang diubah di kolom konten, dan operasi yang diperlukan untuk menerapkan baris di kolom metadata __CDC_OPERATION.
semua dengan masker
Mengembalikan konten akhir dari semua baris yang diubah di kolom konten, dan operasi yang diperlukan untuk menerapkan setiap baris dalam kolom metadata __CDC_OPERATION. Jika daftar bendera pembaruan ditentukan saat Anda membuat skrip untuk membuat fungsi pembungkus, opsi ini diperlukan untuk mengisi masker pembaruan.
semua dengan penggabungan
Mengembalikan konten akhir dari semua baris yang diubah di kolom konten.
Kolom __CDC_OPERATION akan menjadi salah satu dari dua nilai berikut:
D, jika baris harus dihapus.
M, jika baris harus disisipkan atau diperbarui.
Logika untuk menentukan apakah penyisipan atau pembaruan diperlukan untuk menerapkan perubahan pada target yang ditambahkan ke kompleksitas kueri. Gunakan opsi ini untuk meningkatkan performa saat tidak perlu membedakan antara operasi sisipkan dan perbarui. Pendekatan ini berfungsi paling baik di lingkungan target tempat operasi penggabungan tersedia secara langsung.
Tabel Dikembalikan
| Nama kolom | Jenis kolom | Deskripsi |
|---|---|---|
| <kolom dari @column_list> | Bervariasi | Kolom yang diidentifikasi dalam argumen column_list ke sp_cdc_generate_wrapper_function saat dipanggil untuk menghasilkan skrip untuk membuat pembungkus. Jika column_list NULL, semua kolom sumber yang dilacak akan muncul dalam tataan hasil. |
| __CDC_OPERATION | nvarchar(2) | Kode operasi yang menunjukkan operasi mana yang diperlukan untuk menerapkan baris ke lingkungan target. Operasi akan bervariasi berdasarkan nilai argumen row_filter_option yang disediakan dalam panggilan berikut: row_filter_option = 'semua' , 'semua dengan masker' 'D' - operasi penghapusan 'I' - operasi sisipkan 'UN' - operasi pembaruan row_filter_option = 'semua dengan penggabungan' 'D' - operasi penghapusan 'M' - operasi penyisipan atau operasi pembaruan |
| <kolom dari @update_flag_list> | bit | Bendera bit yang diberi nama dengan menambahkan _uflag ke nama kolom. Bendera mengambil nilai non-NULL hanya ketika row_filter_option= 'semua dengan masker' dan __CDC_OPERATION = 'UN'. Ini diatur ke 1 jika kolom yang sesuai dimodifikasi dalam jendela kueri. Jika tidak, 0. |
Keterangan
Fungsi ini fn_net_changes_<capture_instance> berfungsi sebagai pembungkus untuk cdc.fn_cdc_get_net_changes_<capture_instance> fungsi kueri. Prosedur sys.sp_cdc_generate_wrapper tersimpan digunakan untuk membuat skrip untuk pembungkus.
Fungsi pembungkus tidak dibuat secara otomatis. Ada dua hal yang harus Anda lakukan untuk membuat fungsi pembungkus:
Jalankan prosedur tersimpan untuk menghasilkan skrip untuk membuat pembungkus.
Jalankan skrip untuk benar-benar membuat fungsi pembungkus.
Fungsi pembungkus memungkinkan pengguna untuk secara sistematis mengkueri perubahan yang terjadi dalam interval yang dibatasi oleh nilai tanggalwaktu alih-alih oleh nilai LSN. Fungsi pembungkus melakukan semua konversi yang diperlukan antara nilai tanggalwaktu yang disediakan dan nilai LSN yang diperlukan secara internal sebagai argumen ke fungsi kueri. Ketika fungsi pembungkus digunakan secara serial untuk memproses aliran data perubahan, mereka memastikan bahwa tidak ada data yang hilang atau diulang asalkan konvensi berikut diikuti: @end_time nilai interval yang terkait dengan satu panggilan disediakan sebagai @start_time nilai untuk interval yang terkait dengan panggilan berikutnya.
Dengan menggunakan @closed_high_end_point parameter saat membuat skrip, Anda dapat membuat pembungkus untuk mendukung batas atas tertutup atau batas atas terbuka pada jendela kueri yang ditentukan. Artinya, Anda dapat memutuskan apakah entri yang memiliki waktu penerapan sama dengan batas atas interval ekstraksi akan disertakan dalam interval. Secara default, batas atas disertakan.
Tataan hasil yang dikembalikan oleh fungsi pembungkus perubahan bersih hanya mengembalikan kolom terlacak yang ada di @column_list saat pembungkus dihasilkan. Jika @column_list NULL, semua kolom sumber yang dilacak dikembalikan. Kolom sumber diikuti oleh kolom operasi, __CDC_OPERATION, yang merupakan kolom satu atau dua karakter yang mengidentifikasi operasi.
Bendera bit kemudian ditambahkan ke tataan hasil untuk setiap kolom yang diidentifikasi dalam parameter @update_flag_list. Untuk pembungkus perubahan bersih, bendera bit akan selalu NULL jika @row_filter_option yang digunakan dalam panggilan ke fungsi pembungkus adalah 'semua' atau 'semua dengan penggabungan'. @row_filter_option Jika diatur ke 'semua dengan masker', dan __CDC_OPERATION adalah 'D' atau 'I', nilai bendera juga akan NULL. Jika __CDC_OPERATION adalah 'UN', bendera akan diatur ke 1 atau 0, tergantung pada apakah operasi pembaruan bersih menyebabkan perubahan pada kolom.
Templat konfigurasi pengambilan data perubahan 'Membuat Instans CDC Wrapper TVFs untuk Skema' menunjukkan cara menggunakan sp_cdc_generate_wrapper_function prosedur tersimpan untuk mendapatkan skrip CREATE untuk semua fungsi pembungkus untuk fungsi kueri yang ditentukan skema. Templat kemudian membuat skrip tersebut. Untuk informasi selengkapnya tentang templat, lihat Penjelajah Templat.
Fungsi pembungkus sys.fn_all_changes_<capture_instance> dan sys.fn_net_changes_<capture_instance> tergantung pada fungsi cdc.fn_cdc_get_all_changes_<capture_instance> sistem dan cdc.fn_cdc_get_net_changes_<capture_instance>. 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.