Di SQL Server, Anda dapat menggunakan sp_update_job
prosedur tersimpan untuk mengubah pekerjaan Agen Server SQL yang ada.
Contoh
Dalam contoh ini, kami membuat pekerjaan, kemudian kami menggunakan sp_update_job
untuk mengubah pekerjaan itu.
Buat Pekerjaan
Pertama, buat pekerjaan:
USE msdb;
GO
EXEC sp_add_job
@job_name = N'BakMovies',
@description = N'Backup the Movies database.',
@category_name = 'Database Maintenance';
GO
EXEC sp_add_jobstep
@job_name = N'BakMovies',
@step_name = N'Run the backup',
@subsystem = N'TSQL',
@command = N'BACKUP DATABASE [Movies] TO DISK = N''C:\Backups\Movies.bak'' WITH CHECKSUM',
@retry_attempts = 5,
@retry_interval = 5;
GO
EXEC sp_add_schedule
@schedule_name = N'Run_Sat_5AM',
@freq_type = 8,
@freq_interval = 64,
@freq_recurrence_factor = 1,
@active_start_time = 050000;
GO
EXEC sp_attach_schedule
@job_name = N'BakMovies',
@schedule_name = N'Run_Sat_5AM';
GO
EXEC sp_add_jobserver
@job_name = N'BakMovies';
GO
Kode di atas menggunakan lima prosedur tersimpan tetapi sp_update_job
prosedur hanya memperbarui detail yang dibuat dengan sp_add_job
prosedur. Prosedur lain memiliki prosedur "pembaruan" yang cocok.
Supaya lebih jelas, bagian berikut ini adalah bagian yang bisa kita update dengan sp_update_job
prosedur.
EXEC sp_add_job
@job_name = N'BakMovies',
@description = N'Backup the Movies database.',
@category_name = 'Database Maintenance';
Dalam hal ini kami hanya menyediakan tiga argumen saat membuat pekerjaan. Prosedur sebenarnya menerima lebih dari itu, tetapi satu-satunya argumen yang diperlukan adalah nama pekerjaan.
Memperbarui Pekerjaan
Sekarang kita dapat menggunakan sp_update_job
untuk mengubah pekerjaan di atas.
EXEC sp_update_job
@job_name = N'BakMovies',
@new_name = N'BackupMoviesDB',
@description = N'Backup the Movies database.',
@category_name = 'Database Maintenance';
Satu-satunya hal yang dilakukan contoh ini adalah mengubah nama pekerjaan.
sp_update_job
prosedur tersimpan hanya mengubah pengaturan yang nilai parameternya diberikan. Jika parameter dihilangkan, pengaturan saat ini dipertahankan.
Oleh karena itu, dalam contoh ini, kami dapat menghilangkan deskripsi dan nama kategori:
EXEC sp_update_job
@job_name = N'BakMovies',
@new_name = N'BackupMoviesDB';
Menonaktifkan Pekerjaan
Anda dapat menonaktifkan pekerjaan dengan menyetel @enabled
ke 0
:
EXEC sp_update_job
@job_name = N'BackupMoviesDB',
@new_name = N'BackupMoviesDB (DISABLED)',
@enabled = 0;
Dalam contoh ini saya juga mengubah nama pekerjaan untuk memperjelas bahwa pekerjaan tersebut dinonaktifkan.
Periksa Pekerjaan
Anda dapat menggunakan sp_help_job
untuk melihat pengaturan pekerjaan saat ini.
Anda dapat menggunakannya dengan atau tanpa parameter. Ketika digunakan tanpa parameter, ia mengembalikan semua pekerjaan.
EXEC sp_help_job;
Jika Anda hanya ingin melihat detail satu pekerjaan, Anda dapat memberikan nama atau ID pekerjaan tersebut.
Seperti ini:
EXEC sp_help_job
@job_name = 'BackupMoviesDB';
Begini hasilnya saat dijalankan di SSMS:
Meskipun, saat memberikan nama, Anda harus mengingat nama belakang yang Anda berikan untuk pekerjaan itu. Dalam kasus kami, jika kami menjalankan prosedur ini setelah contoh sebelumnya (ketika kami menonaktifkan pekerjaan), kami perlu melakukan ini:
EXEC sp_help_job
@job_name = 'BackupMoviesDB (DISABLED)';
Namun, ID pekerjaan tetap konstan, sehingga Anda dapat menggunakannya terlepas dari nama pekerjaan.
Contoh:
EXEC sp_help_job
@job_id = '158D714B-6686-48FD-BB41-D35C6EE70AED';
Saat menggunakan ID, Anda dapat menghilangkan nama parameter jika diinginkan.
Contoh:
EXEC sp_help_job '158D714B-6686-48FD-BB41-D35C6EE70AED';
Apa yang Terjadi dengan Langkah Kerja, Jadwal, dll?
Memodifikasi pekerjaan tidak merusak langkah-langkah pekerjaan itu dan menjadwalkan informasi. Langkah dan jadwal pekerjaan akan tetap utuh setelah Anda melakukan modifikasi apa pun.
Jika Anda perlu mengubah langkah atau jadwal, Anda harus menggunakan prosedur tersimpan yang sesuai untuknya (misalnya, gunakan sp_update_schedule
untuk memperbarui jadwalnya dan sp_update_jobstep
untuk memperbarui langkah tugasnya).
Sintaks Penuh
Sintaks lengkap sp_update_job
seperti ini:
sp_update_job [ @job_id =] job_id | [@job_name =] 'job_name'
[, [@new_name =] 'new_name' ]
[, [@enabled =] enabled ]
[, [@description =] 'description' ]
[, [@start_step_id =] step_id ]
[, [@category_name =] 'category' ]
[, [@owner_login_name =] 'login' ]
[, [@notify_level_eventlog =] eventlog_level ]
[, [@notify_level_email =] email_level ]
[, [@notify_level_netsend =] netsend_level ]
[, [@notify_level_page =] page_level ]
[, [@notify_email_operator_name =] 'operator_name' ]
[, [@notify_netsend_operator_name =] 'netsend_operator' ]
[, [@notify_page_operator_name =] 'page_operator' ]
[, [@delete_level =] delete_level ]
[, [@automatic_post =] automatic_post ]
Lihat dokumentasi Microsoft untuk sp_update_job
untuk penjelasan setiap parameter, serta nilai yang diterima masing-masing.