Di SQL Server, Anda dapat menggunakan sp_update_jobstep
prosedur tersimpan untuk mengubah langkah pekerjaan yang ada dari pekerjaan Agen Server SQL.
Saat Anda membuat pekerjaan Agen Server SQL, Anda membuat satu atau beberapa langkah pekerjaan untuk pekerjaan itu. sp_update_jobstep
prosedur memungkinkan Anda untuk memperbarui langkah pekerjaan tertentu terlepas dari pekerjaan sebenarnya atau langkah pekerjaan lainnya.
Contoh
Pada contoh ini kita membuat job dengan satu job step, kemudian kita menggunakan sp_update_jobstep
untuk mengubah langkah pekerjaan.
Buat Pekerjaan
Pertama, buat pekerjaan:
USE msdb;
GO
EXEC sp_add_job
@job_name = N'BackupMoviesDB',
@description = N'Backup the Movies database.',
@category_name = 'Database Maintenance';
GO
EXEC sp_add_jobstep
@job_name = N'BackupMoviesDB',
@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'BackupMoviesDB',
@schedule_name = N'Run_Sat_5AM';
GO
EXEC sp_add_jobserver
@job_name = N'BackupMoviesDB';
GO
Kode di atas menggunakan lima prosedur tersimpan, tetapi sp_add_jobstep
prosedur adalah satu-satunya yang berisi detail yang dapat diubah dengan sp_update_jobstep
. Prosedur lain memiliki prosedur "pembaruan" yang cocok (seperti sp_update_job
dan sp_update_schedule
).
Supaya lebih jelas, part berikut ini adalah part yang bisa kita update dengan sp_update_jobstep
prosedur.
EXEC sp_add_jobstep
@job_name = N'BackupMoviesDB',
@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;
Dalam hal ini kami memberikan enam argumen saat membuat pekerjaan. Prosedur sebenarnya menerima lebih dari itu, tetapi ini akan dilakukan untuk tujuan kita.
Perbarui Langkah Pekerjaan
Sekarang kita dapat menggunakan sp_update_jobstep
untuk mengubah langkah pekerjaan di atas.
EXEC sp_update_jobstep
@job_name = N'BackupMoviesDB',
@step_id = 1,
@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 = 10,
@retry_interval = 5;
Satu-satunya hal yang dilakukan contoh ini adalah meningkatkan upaya coba lagi dari 5
ke 10
.
sp_update_jobstep
prosedur tersimpan hanya mengubah pengaturan yang nilai parameternya diberikan. Jika parameter dihilangkan, pengaturan saat ini dipertahankan.
Oleh karena itu, dalam contoh ini, kita bisa menghilangkan argumen lain, seperti ini:
EXEC sp_update_jobstep
@job_name = N'BackupMoviesDB',
@step_id = 1,
@retry_attempts = 10;
Periksa Pekerjaan
Anda dapat menggunakan sp_help_job
untuk mendapatkan informasi tentang pekerjaan SQL Server Agent di sistem.
Anda dapat menggunakannya dengan atau tanpa parameter, tetapi untuk mendapatkan detail langkah pekerjaan, Anda harus memberikan nama atau ID pekerjaan.
Seperti ini:
EXEC sp_help_job
@job_name = 'BackupMoviesDB';
Begini hasilnya saat dijalankan di SSMS:
Berikut contoh kode saat menggunakan ID:
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';
Sintaks Penuh
Sintaks lengkap sp_update_jobstep
seperti ini:
sp_update_jobstep
{ [@job_id =] job_id
| [@job_name =] 'job_name' } ,
[@step_id =] step_id
[ , [@step_name =] 'step_name' ]
[ , [@subsystem =] 'subsystem' ]
[ , [@command =] 'command' ]
[ , [@additional_parameters =] 'parameters' ]
[ , [@cmdexec_success_code =] success_code ]
[ , [@on_success_action =] success_action ]
[ , [@on_success_step_id =] success_step_id ]
[ , [@on_fail_action =] fail_action ]
[ , [@on_fail_step_id =] fail_step_id ]
[ , [@server =] 'server' ]
[ , [@database_name =] 'database' ]
[ , [@database_user_name =] 'user' ]
[ , [@retry_attempts =] retry_attempts ]
[ , [@retry_interval =] retry_interval ]
[ , [@os_run_priority =] run_priority ]
[ , [@output_file_name =] 'file_name' ]
[ , [@flags =] flags ]
[ , { [ @proxy_id = ] proxy_id
| [ @proxy_name = ] 'proxy_name' }
Lihat dokumentasi Microsoft untuk sp_update_jobstep
untuk penjelasan setiap parameter, serta nilai yang diterima masing-masing.
Perhatikan bahwa memperbarui langkah tugas akan menambah nomor versi tugas.