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