sp_delete_jobsteplog (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

拿掉以 自變數指定的所有 SQL Server Agent 作業步驟記錄。 使用此預存程式來維護資料庫中的 sysjobstepslogs 數據表 msdb

Transact-SQL 語法慣例

語法

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 ]
[ ; ]

引數

[ @job_id = ] 'job_id'

包含要移除之作業步驟記錄之作業的作業標識碼。 @job_id為 uniqueidentifier,預設值為 NULL

必須指定@job_id@job_name,但無法指定兩者。

[ @job_name = ] N'job_name'

作業的名稱。 @job_name為 sysname,預設值為 NULL

必須指定@job_id@job_name,但無法指定兩者。

[ @step_id = ] step_id

作業步驟記錄檔中要刪除之步驟的標識碼。 @step_id為 int,預設值為 NULL。 如果未包含,除非指定@older_than@larger_than,否則會刪除作業中的所有作業步驟記錄。

您可以指定@step_id@step_name,但無法指定兩者。

[ @step_name = ] N'step_name'

要刪除作業步驟記錄之作業中的步驟名稱。 @step_name為 sysname,預設值為 NULL

您可以指定@step_id@step_name,但無法指定兩者。

[ @older_than = ] older_than

您想要保留之最舊作業步驟記錄的日期和時間。 @older_than為 datetime,預設值為 NULL。 拿掉超過此日期和時間的所有作業步驟記錄。

您可以同時指定@older_than@larger_than

[ @larger_than = ] larger_than

您想要保留的最大作業步驟記錄的位元元元大小。 @larger_than為 int,預設值為 NULL。 拿掉此大小較大的所有作業步驟記錄。

您可以同時指定@older_than@larger_than

傳回碼值

0 (成功)或 1 (失敗)。

結果集

無。

備註

sp_delete_jobsteplog 位於 msdb 資料庫中。

如果未指定@job_id@job_name以外的自變數,則會刪除指定作業的所有作業步驟記錄。

權限

此預存程式是由 db_owner 角色所擁有。 您可以授與 EXECUTE 任何用戶的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。

其他用戶必須在資料庫中獲得下列其中一個 SQL Server Agent 固定資料庫角色 msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色

只有系統管理員的成員可以刪除其他用戶所擁有的作業步驟記錄。

範例

A. 從作業中移除所有作業步驟記錄

下列範例會移除作業 的所有作業 Weekly Sales Data Backup步驟記錄。

USE msdb;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup';
GO

B. 拿掉特定作業步驟的作業步驟記錄

下列範例會移除作業中步驟 2 的作業 Weekly Sales Data Backup步驟記錄。

USE msdb;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C. 根據年齡和大小移除所有作業步驟記錄

下列範例會從作業中移除早於 2005 年 10 月 25 日中午且大於 100 MB 的所有作業 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