sp_delete_job (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

SQL Server エージェント サービスからジョブを削除します。

Transact-SQL 構文表記規則

構文

sp_delete_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @delete_history = ] delete_history ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]

引数

[ @job_id = ] 'job_id'

削除するジョブの ID 番号。 @job_idは uniqueidentifier で、既定値は NULL.

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

[ @job_name = ] N'job_name'

削除するジョブの名前。 @job_nameは sysname で、既定値は NULL.

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

[ @originating_server = ] N'originating_server'

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

[ @delete_history = ] delete_history

ジョブの履歴を削除するかどうかを指定します。 @delete_historyはビットで、既定値は 1.

  • @delete_historyすると1、ジョブのジョブ履歴が削除されます。
  • @delete_history0場合、ジョブ履歴は削除されません。

ジョブが削除され、履歴が削除されない場合、ジョブの履歴情報はSQL Server エージェントグラフィカル ユーザー インターフェイスジョブ履歴には表示されませんが、情報はデータベース内msdbsysjobhistoryテーブルに残ります。

[ @delete_unused_schedule = ] delete_unused_schedule

他のジョブにアタッチされていない場合に、このジョブにアタッチされているスケジュールを削除するかどうかを指定します。 @delete_unused_scheduleはビットで、既定値は 1.

  • @delete_unused_scheduleの場合1他のジョブがスケジュールを参照していない場合、このジョブにアタッチされているスケジュールは削除されます。
  • @delete_unused_schedule0場合、スケジュールは削除されません。

リターン コードの値

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

結果セット

ありません。

解説

@originating_server引数は内部使用のために予約されています。

@delete_unused_schedule引数は、ジョブにアタッチされていないスケジュールを自動的に削除することで、以前のバージョンの SQL Server との下位互換性を提供します。 このパラメーターの既定値は、下位互換性のある動作です。 ジョブにアタッチされていないスケジュールを保持するには、@delete_unused_schedule引数として値0を指定する必要があります。

SQL Server Management Studio は、簡単かつ直観的な方法でジョブを管理するためのツールで、ジョブ体系の作成および管理に最適です。

このストアド プロシージャは、メインテナント プランを削除することも、メインテナント プランの一部であるジョブを削除することもできません。 代わりに、SQL Server Management Studio を使用して、メインテナント プランを削除します。

このストアド プロシージャは、Azure SQL Database の sp_delete_job Azure Elastic Jobs サービスの同様の オブジェクトと名前を共有します。 エラスティック ジョブのバージョンについては、「jobs.sp_delete_job (Azure エラスティック ジョブ) (Transact-SQL)」を参照してください

アクセス許可

このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

他のユーザーには、データベース内の固定データベース ロールSQL Server エージェント次のいずれかを付与するmsdb必要があります。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。

sysadmin 固定サーバー ロールのメンバーは、ジョブを削除するために実行sp_delete_jobできます。 sysadmin 固定サーバー ロールのメンバーではないユーザーは、そのユーザーが所有するジョブのみを削除できます。

次の例では、ジョブ NightlyBackups を削除します。

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO