sp_delete_jobsteplog (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

引数で指定SQL Server エージェントジョブ ステップ ログをすべて削除します。 このストアド プロシージャを使用して、データベースに 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 エージェント次のいずれかを付与するmsdb必要があります。

  • 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