sp_delete_jobsteplog (Transact-SQL)
移除引數所指定的所有 SQL Server Agent 作業步驟記錄。請利用這個預存程序來維護 msdb 資料庫中的 sysjobstepslogs 資料表。
語法
sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
[ , [ @step_id = ] step_id| [ @step_name = ] 'step_name' ]
[ , [ @older_than = ] 'date' ]
[ , [ @larger_than = ] 'size_in_bytes' ]
引數
[ @job_id =] 'job_id'
包含將移除的作業步驟記錄之作業的作業識別碼。job_id 是 int,預設值是 NULL。[ @job_name =] 'job_name'
作業的名稱。job_name 是 sysname,預設值是 NULL。[!附註]
您必須指定 job_id 或 job_name,但不能同時指定這兩者。
[ @step_id =] step_id
這是作業中將刪除作業步驟記錄之步驟的識別碼。如果沒有包括這個項目,除非指定了 @older_than 或 @larger_than,否則,會刪除作業中的所有作業步驟記錄。step_id 是 int,預設值是 NULL。[ @step_name =] 'step_name'
這是作業中將刪除作業步驟記錄之步驟的名稱。step_name 是 sysname,預設值是 NULL。[!附註]
您可以指定 step_id 或 step_name 其中之一,但不能同時指定這兩者。
[ @older_than =] 'date'
您要保留的最舊作業步驟記錄的日期和時間。在這個日期和時間之前的所有作業步驟記錄都會被移除。date 是 datetime,預設值是 NULL。您可以同時指定 @older_than 和 @larger_than。[ @larger_than =] 'size_in_bytes'
您要保留的最大作業步驟記錄的大小 (以位元組為單位)。所有大於這個大小的作業步驟記錄都會遭到移除。您可以同時指定 @larger_than 和 @older_than。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
無
備註
sp_delete_jobsteplog 在 msdb 資料庫中。
如果未指定 @job_id 或 @job_name 以外的任何引數,便會刪除所有作業步驟記錄。
權限
依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。
只有系統管理員 (sysadmin) 的成員可以刪除另一位使用者所擁有的作業步驟記錄。
範例
A. 從作業中移除所有作業步驟記錄
下列範例會移除 Weekly Sales Data Backup 作業的所有作業步驟記錄。
USE msdb ;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup';
GO
B. 移除特定作業步驟的作業步驟記錄
下列範例會移除 Weekly Sales Data Backup 作業中第 2 步驟的作業步驟記錄。
USE msdb ;
GO
EXEC dbo.sp_delete_jobsteplog
@job_name = N'Weekly Sales Data Backup',
@step_id = 2;
GO
C. 根據存在時間和大小來移除所有作業步驟記錄
下列範例會從 Weekly Sales Data Backup 作業中,移除在 2005 年 10 月 25 日中午之前的所有作業步驟記錄,以及超出 100 MB 的作業步驟記錄。
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