次の方法で共有


sp_detach_schedule (Transact-SQL)

適用対象: SQL サーバー

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

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

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

[ @job_name = ] N'job_name'

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

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

[ @schedule_id = ] schedule_id

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

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

[ @schedule_name = ] N'schedule_name'

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

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

[ @delete_unused_schedule = ] delete_unused_schedule

未使用のジョブ スケジュールを削除するかどうかを指定します。 @delete_unused_scheduleビットで、既定値は 0 です。つまり、ジョブがそれらを参照していない場合でも、すべてのスケジュールが保持されます。 1に設定すると、未使用のジョブ スケジュールは、参照するジョブがない場合に削除されます。

[ @automatic_post = ] automatic_post

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

リターン コードの値

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

結果セット

なし。

アクセス許可

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

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

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

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

USE msdb;
GO

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