Di SQL Server, sp_help_jobschedule
prosedur tersimpan mengembalikan informasi tentang penjadwalan pekerjaan.
Artikel ini memberikan ikhtisar tentang prosedur tersimpan ini termasuk contohnya.
Sintaks
Sintaks resminya seperti ini:
sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @schedule_name = ] 'schedule_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @include_description = ] include_description ]
Saat Anda menelepon sp_help_jobschedule
, Anda harus memberikan nama pekerjaan atau ID-nya (tetapi tidak keduanya), atau ID jadwal. Anda juga dapat melewati nama jadwal tetapi hanya dengan kombinasi dengan ID pekerjaan atau namanya.
Kombinasi yang diterima agak rumit. Pada dasarnya, ini seperti ini:
Jika schedule_id
tidak ditentukan, baik job_id
atau job_name
dapat ditentukan. Jika tidak, job_id
atau job_name
parameter dapat digunakan dengan schedule_name
.
Namun, Anda tidak akan dapat menggunakan schedule_id
jika jadwal dilampirkan ke beberapa pekerjaan.
Perhatikan bahwa sp_help_jobschedule
ada di msdb database, sehingga perlu dijalankan dari sana. Anda dapat melakukannya dengan beralih ke msdb database (misalnya dengan USE msdb
), atau dengan mengkualifikasikan prosedur dengan nama dan skema database (yaitu msdb.dbo.sp_help_jobschedule
).
Contoh
Berikut ini contoh untuk menunjukkan cara mengembalikan semua jadwal yang dilampirkan ke pekerjaan tertentu:
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest';
Hasil:
Ini mengembalikan daftar jadwal yang dilampirkan ke pekerjaan yang ditentukan dengan @job_name
argumen.
Atau, saya bisa melewati @job_id
:
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
Tapi dalam hal ini, saya tidak bisa menggunakan @job_name
(itu salah satu atau yang lain).
Saat menggunakan ID pekerjaan, Anda dapat menghilangkan nama parameter jika diinginkan:
EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
Menggunakan @schedule_id
Parameter
Anda juga bisa mendapatkan jadwal berdasarkan ID-nya:
EXEC sp_help_jobschedule
@schedule_id = 15;
Ini berfungsi dengan baik selama jadwal tidak dilampirkan ke banyak pekerjaan.
Inilah yang terjadi ketika jadwal dilampirkan ke beberapa pekerjaan:
EXEC sp_help_jobschedule
@schedule_id = 14;
Hasil:
Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22] The schedule ID "14" is used by more than one job. Specify the job_id.
Dan meskipun meminta untuk menentukan job_id
, jika Anda melakukannya, Anda harus menghapus schedule_id
(seperti yang disebutkan, jika Anda melewati schedule_id
, Anda tidak dapat menyertakan job_name
atau job_id
).
Untuk mendemonstrasikannya, jika saya cukup menambahkan job_id
dan simpan schedule_id
di sana, saya mendapatkan kesalahan berikut.
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
@schedule_id = 14;
Hasil:
Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22] You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.
Sertakan Deskripsi
Hal lain yang dapat Anda lakukan adalah menentukan apakah akan menyertakan deskripsi jadwal atau tidak.
Secara default, deskripsi tidak disertakan dalam kumpulan hasil. Sebenarnya, schedule_description
kolom adalah disertakan, tetapi tidak berisi deskripsi, kecuali jika Anda memintanya secara eksplisit. Jika Anda tidak memintanya, schedule_description
kolom menampilkan (Description not requested.)
.
@include_description
parameternya adalah bit , dengan default 0
, yang berarti tidak menampilkan deskripsi. Melewati nilai 1
menghasilkan deskripsi yang ditampilkan.
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest',
@include_description = 1;