USE [msdb]
DECLARE @job_name VARCHAR(100)
SET @job_name = N'syspolicy_purge_history'
--注:jobName爲維護計劃對應的jobName
--刪除在計劃裏面的日誌
DELETE
sysmaintplan_log
FROM
sysmaintplan_subplans AS subplans
INNER JOIN sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id
INNER JOIN sysmaintplan_log ON subplans.subplan_id =sysmaintplan_log.subplan_id
WHERE
(syjobs.name = @job_name)
--刪除代理的作業
DELETE
sysjobschedules FROM sysjobs_view v
INNER JOIN sysjobschedules o ON v.job_id=o.job_id
WHERE
v.name=@job_name
--刪除子計劃
DELETE
sysmaintplan_subplans
FROM
sysmaintplan_subplans AS subplans
INNER JOIN sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id
WHERE
(syjobs.name = @job_name)
--刪除作業
DELETE FROM msdb.dbo.sysjobs_view WHERE name = @job_name