sp_delete_jobsteplog (Transact-SQL)

引数で指定したすべての SQL Server エージェント ジョブ ステップ ログを削除します。 このストアド プロシージャは、msdb データベースの sysjobstepslogs テーブルを管理するときに使用できます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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_jobsteplogmsdb データベースにあります。

@job_id または @job_name 以外に引数を指定しない場合は、指定したジョブのすべてのジョブ ステップ ログが削除されます。

権限

既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバーです。 他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。

他のユーザーが所有するジョブ ステップ ログを削除できるのは、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