原文連結:https://blog.csdn.net/qq_17858059/article/details/106196863
SQL server 因為需要定時備份資料庫,一般情況下大家都會選擇在管理的維護計劃中建立維護計劃,因各種原因建立的維護計劃不合適或者不用需要刪除時,有時候會提示無法刪除,各種提示報錯。
以下是無法手動刪除時,透過sql語句刪除的步驟。
--【1】刪除【管理】中的維護計劃
use msdb
go
select * from sysmaintplan_plans
Delete sysmaintplan_plans where Name='維護計劃'
--【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