次の方法で共有


sp_delete_jobsteplog (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

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

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_iduniqueidentifier で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @job_name = ] N'job_name'

ジョブの名前。 @job_namesysname で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @step_id = ] step_id

ジョブ ステップ ログを削除するジョブ内のステップの識別番号。 @step_idint で、既定値は NULL です。 含まれていない場合、 @older_than または @larger_than が指定されていない限り、ジョブ内のすべてのジョブ ステップ ログが削除されます。

@step_idまたは@step_nameを指定できますが、両方を指定することはできません。

[ @step_name = ] N'step_name'

ジョブ ステップ ログを削除するジョブ内のステップの名前。 @step_namesysname で、既定値は NULL です。

@step_idまたは@step_nameを指定できますが、両方を指定することはできません。

[ @older_than = ] older_than

保持する最も古いジョブ ステップ ログの日付と時刻。 @older_thandatetime で、既定値は NULL です。 この日時より前のジョブ ステップ ログはすべて削除されます。

@older_than@larger_thanの両方を指定できます。

[ @larger_than = ] larger_than

保持する最大ジョブ ステップ ログのサイズ (バイト単位)。 @larger_thanint で、既定値は NULL です。 このサイズより大きいすべてのジョブ ステップ ログは、削除されます。

@older_than@larger_thanの両方を指定できます。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

ありません。

解説

sp_delete_jobsteplogmsdb データベースにあります。

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

アクセス許可

この手順では 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