Bagikan melalui


sp_help_jobhistory (T-SQL)

Berlaku untuk:SQL Server

Menyediakan informasi tentang pekerjaan untuk server di domain administrasi multiserver.

Konvensi sintaks transact-SQL

Sintaks

sp_help_jobhistory
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @sql_message_id = ] sql_message_id ]
    [ , [ @sql_severity = ] sql_severity ]
    [ , [ @start_run_date = ] start_run_date ]
    [ , [ @end_run_date = ] end_run_date ]
    [ , [ @start_run_time = ] start_run_time ]
    [ , [ @end_run_time = ] end_run_time ]
    [ , [ @minimum_run_duration = ] minimum_run_duration ]
    [ , [ @run_status = ] run_status ]
    [ , [ @minimum_retries = ] minimum_retries ]
    [ , [ @oldest_first = ] oldest_first ]
    [ , [ @server = ] N'server' ]
    [ , [ @mode = ] 'mode' ]
[ ; ]

Argumen

[ @job_id = ] 'job_id'

Nomor identifikasi pekerjaan. @job_id adalah uniqueidentifier, dengan default NULL.

[ @job_name = ] N'job_name'

Nama pekerjaan. @job_name adalah sysname, dengan default NULL.

[ @step_id = ] step_id

Nomor identifikasi langkah. @step_id int, dengan default NULL.

[ @sql_message_id = ] sql_message_id

Nomor identifikasi pesan kesalahan yang dikembalikan oleh SQL Server saat menjalankan pekerjaan. @sql_message_id int, dengan default NULL.

[ @sql_severity = ] sql_severity

Tingkat keparahan pesan kesalahan yang dikembalikan oleh SQL Server saat menjalankan pekerjaan. @sql_severity int, dengan default NULL.

[ @start_run_date = ] start_run_date

Tanggal pekerjaan dimulai. @start_run_date int, dengan default NULL. @start_run_date harus dimasukkan dalam formulir yyyyMMdd, di mana yyyy adalah tahun empat karakter, MM adalah nama bulan dua karakter, dan dd merupakan nama hari dua karakter.

[ @end_run_date = ] end_run_date

Tanggal pekerjaan selesai. @end_run_date int, dengan default NULL. @end_run_date harus dimasukkan dalam formulir yyyyMMdd, di mana yyyy adalah tahun empat karakter, MM adalah nama bulan dua karakter, dan dd merupakan nama hari dua karakter.

[ @start_run_time = ] start_run_time

Waktu pekerjaan dimulai. @start_run_time int, dengan default NULL. @start_run_time harus dimasukkan dalam formulir HHmmss, di mana HH adalah jam dua karakter dalam sehari, mm adalah menit dua karakter dalam sehari, dan ss merupakan detik dua karakter dalam sehari.

[ @end_run_time = ] end_run_time

Waktu pekerjaan menyelesaikan eksekusinya. @end_run_time int, dengan default NULL. @end_run_time harus dimasukkan dalam formulir HHmmss, di mana HH adalah jam dua karakter dalam sehari, mm adalah menit dua karakter dalam sehari, dan ss merupakan detik dua karakter dalam sehari.

[ @minimum_run_duration = ] minimum_run_duration

Lama waktu minimum untuk penyelesaian pekerjaan. @minimum_run_duration int, dengan default NULL. @minimum_run_duration harus dimasukkan dalam formulir HHmmss, di mana HH adalah jam dua karakter dalam sehari, mm adalah menit dua karakter dalam sehari, dan ss merupakan detik dua karakter dalam sehari.

[ @run_status = ] run_status

Status eksekusi pekerjaan.@run_status int, dan bisa menjadi salah satu nilai ini.

Nilai Deskripsi
0 Gagal
1 Berhasil
2 Coba lagi (hanya langkah)
3 Canceled
4 Pesan sedang berlangsung
5 Tidak dikenal

[ @minimum_retries = ] minimum_retries

Jumlah minimum kali pekerjaan harus mencoba kembali berjalan. @minimum_retries int, dengan default NULL.

[ @oldest_first = ] oldest_first

Apakah akan menyajikan output dengan pekerjaan terlama terlebih dahulu. @oldest_first int, dengan default 0.

  • 0 menyajikan pekerjaan terbaru terlebih dahulu.
  • 1 menyajikan pekerjaan tertua terlebih dahulu.

[ @server = ] N'server'

Nama server tempat pekerjaan dilakukan. @server adalah sysname, dengan default NULL.

[ @mode = ] 'mode'

Menentukan apakah SQL Server mencetak semua kolom dalam tataan hasil (FULL) atau ringkasan (SUMMARY) kolom. @mode adalah varchar(7), dengan default SUMMARY.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Daftar kolom aktual bergantung pada nilai @mode. Kumpulan kolom yang paling komprehensif diperlihatkan dalam tabel berikut, dan dikembalikan saat @mode adalah FULL.

Nama kolom Jenis data Deskripsi
instance_id int Nomor identifikasi entri riwayat.
job_id pengidentifikasi unik Nomor identifikasi pekerjaan.
job_name nama sysname Nama pekerjaan.
step_id int Nomor identifikasi langkah (0 untuk riwayat pekerjaan).
step_name nama sysname Nama langkah (NULL untuk riwayat pekerjaan).
sql_message_id int Untuk langkah Transact-SQL, nomor kesalahan Transact-SQL terbaru yang ditemui saat menjalankan perintah.
sql_severity int Untuk langkah Transact-SQL, tingkat keparahan kesalahan Transact-SQL tertinggi yang ditemui saat menjalankan perintah.
message nvarchar(1024) Pesan riwayat pekerjaan atau langkah.
run_status int Hasil pekerjaan atau langkah.
run_date int Tanggal pekerjaan atau langkah mulai dijalankan.
run_time int Waktu pekerjaan atau langkah mulai dijalankan.
run_duration int Waktu yang berlalu dalam eksekusi pekerjaan atau langkah dalam HHmmss format.
operator_emailed nvarchar(20) Operator yang dikirim melalui email mengenai pekerjaan ini (adalah NULL untuk riwayat langkah).
operator_netsent nvarchar(20) Operator yang dikirimi pesan jaringan mengenai pekerjaan ini (adalah NULL untuk riwayat langkah).
operator_paged nvarchar(20) Operator yang diberi halaman mengenai pekerjaan ini (adalah NULL untuk riwayat langkah).
retries_attempted int Frekuensi langkah dicoba kembali (selalu 0 untuk riwayat pekerjaan).
server nvarchar(30) Server tempat langkah atau pekerjaan dijalankan. Selalu (local).

Keterangan

sp_help_jobhistory mengembalikan laporan dengan riwayat pekerjaan terjadwal yang ditentukan. Jika tidak ada parameter yang ditentukan, laporan berisi riwayat untuk semua pekerjaan terjadwal.

Izin

Prosedur tersimpan ini dimiliki oleh peran db_owner . Anda dapat memberikan EXECUTE izin untuk pengguna mana pun, tetapi izin ini dapat ditimpa selama peningkatan SQL Server.

Pengguna lain harus diberikan salah satu peran database tetap SQL Server Agent berikut dalam msdb database:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Untuk detail tentang izin peran ini, lihat Peran Database Tetap Agen SQL Server.

Anggota peran database SQLAgentUserRole hanya dapat melihat riwayat untuk pekerjaan yang mereka miliki.

Contoh

J. Mencantumkan semua informasi pekerjaan untuk pekerjaan

Contoh berikut mencantumkan semua informasi pekerjaan untuk pekerjaan tersebut NightlyBackups .

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @job_name = N'NightlyBackups';
GO

B. Mencantumkan informasi untuk pekerjaan yang cocok dengan kondisi tertentu

Contoh berikut mencetak semua kolom dan semua informasi pekerjaan untuk pekerjaan yang gagal dan langkah-langkah pekerjaan yang gagal dengan pesan 50100 kesalahan (pesan kesalahan yang ditentukan pengguna) dan tingkat keparahan 20.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL';
GO