sp_delete_schedule (Transact-SQL)
適用対象:SQL Server
スケジュールを削除します。
構文
sp_delete_schedule { [ @schedule_id = ] schedule_id | [ @schedule_name = ] 'schedule_name' } ,
[ @force_delete = ] force_delete
引数
[ @schedule_id = ] schedule_id
削除するスケジュールのスケジュール ID 番号。 schedule_id は int で、既定値は NULL です。
注意
schedule_idまたはschedule_nameを指定する必要がありますが、どちらも指定できません。
[ @schedule_name = ] 'schedule_name'
削除するスケジュールの名前。 schedule_name は sysname で、既定値は NULL です。
注意
schedule_idまたはschedule_nameを指定する必要がありますが、どちらも指定できません。
[ @force_delete = ] force_delete
スケジュールがジョブにアタッチされている場合にプロシージャを失敗させるかどうかを指定します。 Force_delete はビットであり、既定値は 0 です。 force_deleteが 0 の場合、スケジュールがジョブにアタッチされている場合、ストアド プロシージャは失敗します。 force_deleteが 1 の場合、スケジュールがジョブにアタッチされているかどうかに関係なく、スケジュールは削除されます。
リターン コードの値
0 (成功) または 1 (失敗)
結果セット
なし
解説
既定では、スケジュールがジョブにアタッチされている場合、スケジュールを削除できません。 ジョブにアタッチされているスケジュールを削除するには、force_deleteに値 1 を指定します。 スケジュールを削除しても、現在実行中のジョブは停止されません。
アクセス許可
既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。 他のユーザーには、 SQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
ジョブ所有者は、スケジュール所有者である必要なしに、ジョブをスケジュールにアタッチし、スケジュールからジョブをデタッチできることに注意してください。 ただし、呼び出し元がスケジュール所有者でない限り、デタッチによってジョブが残されない場合は、スケジュールを削除できません。
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
sysadmin ロールのメンバーのみが、別のユーザーが所有するジョブ スケジュールを削除できます。
例
A. スケジュールを削除する
次の例では、スケジュール NightlyJobs
を削除します。 スケジュールがジョブにアタッチされている場合、この例ではスケジュールは削除されません。
USE msdb ;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = N'NightlyJobs' ;
GO
B. ジョブにアタッチされているスケジュールの削除
次の例では、スケジュールがジョブに関連付けられているかどうかに関係なく、スケジュール RunOnce
を削除します。
USE msdb ;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = 'RunOnce',
@force_delete = 1;
GO
参照
フィードバック
フィードバックの送信と表示