SQL serverメンテナンス計画が手動で削除できない場合の解決方法

1072 ワード

SQL server            ,                          ,                        ,          ,      。

          ,  sql       。

--【1】  【  】      
use msdb
go
select * from sysmaintplan_plans
Delete sysmaintplan_plans where Name='MaintenancePlan'

--【2】  【SQLserver  】    

USE [msdb]
Declare @job_name varchar(100)
--SET @job_name = N'jobName'
SET @job_name=N'     .Subplan_1'
-- :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