sp_delete_jobsteplog (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Menghapus semua log langkah pekerjaan SQL Server Agent yang ditentukan dengan argumen . Gunakan prosedur tersimpan ini untuk mempertahankan tabel sysjobstepslogs dalam msdb
database.
Sintaks
sp_delete_jobsteplog
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @step_id = ] step_id ]
[ , [ @step_name = ] N'step_name' ]
[ , [ @older_than = ] older_than ]
[ , [ @larger_than = ] larger_than ]
[ ; ]
Argumen
[ @job_id = ] 'job_id'
Nomor identifikasi pekerjaan untuk pekerjaan yang berisi log langkah pekerjaan yang akan dihapus. @job_id adalah uniqueidentifier, dengan default NULL
.
Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @job_name = ] N'job_name'
Nama pekerjaan. @job_name adalah sysname, dengan default NULL
.
Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @step_id = ] step_id
Nomor identifikasi langkah dalam pekerjaan tempat log langkah pekerjaan akan dihapus. @step_id int, dengan default NULL
. Jika tidak disertakan, semua log langkah pekerjaan dalam pekerjaan dihapus kecuali @older_than atau @larger_than ditentukan.
Baik @step_id atau @step_name dapat ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @step_name = ] N'step_name'
Nama langkah dalam pekerjaan tempat log langkah pekerjaan akan dihapus. @step_name adalah sysname, dengan default NULL
.
Baik @step_id atau @step_name dapat ditentukan, tetapi keduanya tidak dapat ditentukan.
[ @older_than = ] older_than
Tanggal dan waktu log langkah pekerjaan terlama yang ingin Anda simpan. @older_than adalah datetime, dengan default NULL
. Semua log langkah pekerjaan yang lebih lama dari tanggal dan waktu ini dihapus.
Baik @older_than maupun @larger_than dapat ditentukan.
[ @larger_than = ] larger_than
Ukuran dalam byte log langkah pekerjaan terbesar yang ingin Anda simpan. @larger_than int, dengan default NULL
. Semua log langkah pekerjaan yang lebih besar sehingga ukuran ini dihapus.
Baik @older_than maupun @larger_than dapat ditentukan.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Tataan hasil
Tidak ada.
Keterangan
sp_delete_jobsteplog
ada dalam msdb
database.
Jika tidak ada argumen kecuali @job_id atau @job_name yang ditentukan, semua log langkah pekerjaan untuk pekerjaan yang ditentukan akan dihapus.
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.
Hanya anggota sysadmin yang dapat menghapus log langkah pekerjaan yang dimiliki oleh pengguna lain.
Contoh
J. Menghapus semua log langkah pekerjaan dari pekerjaan
Contoh berikut menghapus semua log langkah pekerjaan untuk pekerjaan Weekly Sales Data Backup
.
USE msdb;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup';
GO
B. Menghapus log langkah pekerjaan untuk langkah pekerjaan tertentu
Contoh berikut menghapus log langkah pekerjaan untuk langkah 2 dalam pekerjaan Weekly Sales Data Backup
.
USE msdb;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup',
@step_id = 2;
GO
C. Menghapus semua log langkah pekerjaan berdasarkan usia dan ukuran
Contoh berikut menghapus semua log langkah pekerjaan yang lebih lama dari siang 25 Oktober 2005 dan lebih besar dari 100 megabyte (MB) dari pekerjaan Weekly Sales Data Backup
.
USE msdb;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup',
@older_than = '10/25/2005 12:00:00',
@larger_than = 104857600;
GO