sp_detach_schedule (Transact-SQL)

適用対象:SQL Server

スケジュールとジョブ間の関連付けを削除します。

Transact-SQL 構文表記規則

構文

sp_detach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

引数

[ @job_id = ] 'job_id'

スケジュールを削除するジョブの識別番号を指定します。 @job_idは uniqueidentifier で、既定値は NULL.

[ @job_name = ] N'job_name'

スケジュールを削除するジョブの名前。 @job_nameは sysname で、既定値は NULL.

Note

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

[ @schedule_id = ] schedule_id

ジョブから削除するスケジュールの識別番号を指定します。 @schedule_idは int で、既定値は NULL.

[ @schedule_name = ] N'schedule_name'

ジョブから削除するスケジュールの名前。 @schedule_nameは sysname で、既定値は NULL.

Note

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

[ @delete_unused_schedule = ] delete_unused_schedule

未使用のジョブ スケジュールを削除するかどうかを指定します。 @delete_unused_scheduleはビットで、既定値は 0.

  • 0設定すると、ジョブが参照しない場合でも、すべてのスケジュールが保持されます。
  • に設定すると 1、未使用のジョブ スケジュールは、参照するジョブがない場合に削除されます。

[ @automatic_post = ] automatic_post

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

リターン コードの値

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

結果セット

なし

アクセス許可

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

ジョブ所有者は、スケジュール所有者である必要なく、ジョブをスケジュールにアタッチし、スケジュールからジョブをデタッチできます。 ただし、呼び出し元がスケジュール所有者でない限り、デタッチによってジョブが残らない場合、スケジュールを削除することはできません。

sysadminメンバーのみが、このストアド プロシージャを使用して、他のユーザーが所有するジョブの属性を編集できます。

SQL Server チェック、ユーザーがスケジュールを所有しているかどうかを判断します。 sysadmin 固定サーバー ロールのメンバーのみが、別のユーザーが所有するジョブからスケジュールをデタッチできます。

次の例では、スケジュールとBackupDatabaseジョブの間のNightlyJobs関連付けを削除します。

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO