sys.sp_cdc_change_job (T-SQL)
Berlaku untuk: SQL Server
Memodifikasi konfigurasi pembersihan penangkapan data perubahan atau pekerjaan pengambilan dalam database saat ini. Untuk menampilkan konfigurasi pekerjaan saat ini, kueri tabel dbo.cdc_jobs , atau gunakan sp_cdc_help_jobs.
Sintaks
sys.sp_cdc_change_job [ [ @job_type = ] N'job_type' ]
[ , [ @maxtrans = ] max_trans ]
[ , [ @maxscans = ] max_scans ]
[ , [ @continuous = ] continuous ]
[ , [ @pollinginterval = ] polling_interval ]
[ , [ @retention ] = retention ]
[ @threshold = ] 'delete threshold'
[ ; ]
Argumen
[ @job_type = ] N'job_type'
Jenis pekerjaan yang akan diubah. @job_type adalah nvarchar(20) dengan default capture
. Input yang valid adalah capture
dan cleanup
.
[ @maxtrans ] = max_trans
Jumlah maksimum transaksi yang akan diproses di setiap siklus pemindaian. @maxtrans int, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini. Jika ditentukan, nilainya harus bilangan bulat positif.
@max_trans hanya berlaku untuk pekerjaan pengambilan.
[ @maxscans ] = max_scans
Jumlah maksimum siklus pemindaian yang akan dijalankan untuk mengekstrak semua baris dari log. @maxscans int, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini.
@max_scan hanya berlaku untuk pekerjaan pengambilan.
[ @continuous ] = berkelanjutan
Menunjukkan apakah pekerjaan penangkapan akan berjalan terus menerus (1
), atau hanya berjalan sekali (0
). @continuous adalah bit, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini.
Ketika @continuous adalah
1
, pekerjaan sp_cdc_scan memindai log dan memproses hingga (@maxtrans * @maxscans
) transaksi. Kemudian menunggu jumlah detik yang ditentukan dalam @pollinginterval sebelum memulai pemindaian log berikutnya.Ketika @continuous adalah
0
,sp_cdc_scan
pekerjaan dijalankan hingga @maxscans pemindaian log, memproses hingga transaksi @maxtrans selama setiap pemindaian, lalu keluar.Jika @continuous diubah dari
1
ke0
, @pollinginterval secara otomatis diatur ke0
. Nilai yang ditentukan untuk @pollinginterval selain0
diabaikan.Jika @continuous dihilangkan atau secara eksplisit diatur ke NULL dan @pollinginterval secara eksplisit diatur ke nilai yang lebih besar dari
0
, @continuous secara otomatis diatur ke1
.
@continuous hanya berlaku untuk pekerjaan pengambilan.
[ @pollinginterval ] = polling_interval
Jumlah detik antara siklus pemindaian log. @pollinginterval besar, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini.
@pollinginterval hanya berlaku untuk pekerjaan pengambilan saat @continuous diatur ke 1
.
[ @retention ] = retensi
Jumlah menit yang mengubah baris akan dipertahankan dalam tabel perubahan. @retention besar, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini. Nilai maksimumnya adalah 52494800
(100 tahun). Jika ditentukan, nilainya harus bilangan bulat positif.
@retention hanya berlaku untuk pekerjaan pembersihan.
[ @threshold = ] 'hapus ambang batas'
Jumlah maksimum entri penghapusan yang dapat dihapus menggunakan satu pernyataan saat pembersihan. @threshold besar, dengan default NULL
, yang menunjukkan tidak ada perubahan untuk parameter ini. @threshold hanya berlaku untuk pekerjaan pembersihan.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Tataan hasil
Tidak ada.
Keterangan
Jika parameter dihilangkan, nilai terkait dalam tabel dbo.cdc_jobs tidak diperbarui. Parameter yang diatur secara eksplisit ke NULL diperlakukan seolah-olah parameter dihilangkan.
Menentukan parameter yang tidak valid untuk jenis pekerjaan menyebabkan pernyataan gagal.
Perubahan pada pekerjaan tidak berlaku sampai pekerjaan dihentikan dengan menggunakan sp_cdc_stop_job dan dimulai ulang dengan menggunakan sp_cdc_start_job.
Izin
Memerlukan keanggotaan dalam peran database tetap db_owner .
Contoh
J. Mengubah pekerjaan pengambilan
Contoh berikut memperbarui parameter @job_type, @maxscans, dan @maxtrans pekerjaan pengambilan dalam AdventureWorks2022
database. Parameter valid lainnya untuk pekerjaan penangkapan, @continuous dan @pollinginterval, dihilangkan; nilainya tidak dimodifikasi.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. Mengubah pekerjaan pembersihan
Contoh berikut memperbarui pekerjaan pembersihan AdventureWorks2022
dalam database. Semua parameter yang valid untuk jenis pekerjaan ini, kecuali @threshold, ditentukan. Nilai @threshold tidak dimodifikasi.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO