sp_delete_jobsteplog (Transact-SQL)
引数で指定したすべての SQL Server エージェント ジョブ ステップ ログを削除します。 このストアド プロシージャは、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 エージェント固定データベース ロールが許可されている必要があります。
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