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.

Konvensi sintaks transact-SQL

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 ke 0, @pollinginterval secara otomatis diatur ke 0. Nilai yang ditentukan untuk @pollinginterval selain 0 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 ke 1.

@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