Aracılığıyla paylaş


sys.sp_cdc_change_job (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Mevcut veritabanındaki bir değişiklik veri yakalama temizliği veya yakalama işinin yapılandırmasını değiştirir. Bir işin mevcut yapılandırmasını görmek için dbo.cdc_jobs tablosunu sorgulayın veya sys.sp_cdc_help_jobs kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

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'
[ ; ]

Arguments

[ @job_type = ] N'job_type'

Değiştirilecek iş türü. @job_type, varsayılan olarak nvarchar(20)capture'dir. Geçerli girişler capture ve cleanup'dir.

[ @maxtrans ] = max_trans

Her tarama döngüsünde işlem yapılacak maksimum işlem sayısı. @maxtransint'tir, varsayılan NULLolarak , bu parametre için herhangi bir değişiklik olmadığını gösterir. Belirtilirse, değer pozitif bir tamsayı olmalıdır.

@max_trans sadece yakalama görevleri için geçerlidir.

[ @maxscans ] = max_scans

Tüm satırları günlükten çıkarmak için yürütülmesi gereken maksimum tarama döngüsü. @maxscansint ile varsayılan NULLolarak , bu parametre için herhangi bir değişiklik olmadığını gösterir.

@max_scan sadece yakalama işleri için geçerlidir.

[ @continuous ] = sürekli

Yakalama işinin sürekli mi (1) yoksa sadece bir kez mı çalıştırılacağını (0) gösterir. @continuousbittir ve varsayılan NULLolarak , bu parametre için herhangi bir değişiklik olmadığını gösterir.

  • @continuous1olduğunda, sys.sp_cdc_scan işi günlüğü tarar ve işlemlere (@maxtrans * @maxscans) kadar işlem yapar. Daha sonra @pollinginterval'de belirtilen saniye sayısını bekler, ardından bir sonraki log taramasına başlar.

  • @continuous0olduğunda, sp_cdc_scan iş günlüğün @maxscans taramasını gerçekleştirir, her taramada @maxtrans işlem yapar ve ardından çıkar.

  • Eğer @continuous '1den 'ye 0değiştirilirse, @pollinginterval otomatik olarak 'ye 0ayarlanır. Başka 0@pollinginterval için belirtilen bir değer göz ardı edilir.

  • Eğer @continuous atlanırsa veya açıkça ayarlanırsa NULLve @pollinginterval açıkça 'den 0büyük bir değere ayarlanırsa, @continuous otomatik olarak 'ye 1ayarlanır.

@continuous sadece yakalama işleri için geçerlidir.

[ @pollinginterval ] = polling_interval

Log tarama döngüleri arasındaki saniye sayısı. @pollingintervalbüyük bir özelliktir, varsayılan NULLolarak , bu parametre için hiçbir değişiklik olmadığını gösterir.

@pollinginterval yalnızca @continuous1olarak ayarlandığında yakalama görevleri için geçerlidir.

[ @retention ] = tutma

Satır değiştiren dakika sayısı değişim tablolarında tutulmalıdır. @retentionbigint'tir ve varsayılan NULLolarak , bu parametre için herhangi bir değişiklik olmadığını gösterir. Maksimum değer 52494800 (100 yıl). Belirtilirse, değer pozitif bir tamsayı olmalıdır.

@retention sadece temizlik işleri için geçerlidir.

[ @threshold = ] 'eşik sil'

Temizleme sırasında tek bir ifade kullanılarak silinebilecek maksimum silme girdisi sayısı. @thresholdbüyük bir özelliktir, varsayılan NULLolarak , bu parametre için herhangi bir değişiklik olmadığını gösterir. @threshold sadece temizlik işleri için geçerlidir.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Sonuç kümesi

Yok.

Açıklamalar

Bir parametre atlanırsa, dbo.cdc_jobs tablosunda ilgili değer güncellenmez. Açıkça bir NULL parametre kümesi, parametrenin atlanmış gibi ele alınır.

İş türü için geçersiz bir parametre belirtmek, ifadenin başarısız olmasına neden olur.

Bir işteki değişiklikler, sys.sp_cdc_stop_job kullanılarak durdurulup sys.sp_cdc_start_job kullanılarak yeniden başlatılana kadar geçerli olmaz.

Permissions

Sabit db_owner veritabanı rolünde üyelik gerektirir.

Örnekler

A. Bir yakalama işini değiştir

Aşağıdaki örnek, AdventureWorks2025 veritabanındaki bir yakalama işinin @job_type, @maxscans ve @maxtrans parametrelerini günceller. Yakalama işi için diğer geçerli parametreler olan @continuous ve @pollinginterval çıkarılmıştır; Değerleri değiştirilmez.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_change_job
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

B. Temizlik işini değiştirin

Aşağıdaki örnek, AdventureWorks2025 veritabanında bir temizlik işini günceller. Bu iş türü için geçerli tüm parametreler, @threshold hariç, belirtilmiştir. @threshold değeri değişmez.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_change_job
    @job_type = N'cleanup',
    @retention = 2880;
GO