sp_delete_jobsteplog (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
引数で指定SQL Server エージェントジョブ ステップ ログをすべて削除します。 このストアド プロシージャを使用して、msdb
データベースの sysjobstepslogs テーブルを維持します。
構文
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 のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
他のユーザーには、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: 年齢とサイズに基づいてすべてのジョブ ステップ ログを削除する
次の例では、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