Bagikan melalui


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.

Konvensi sintaks transact-SQL

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