日期:2014-05-18 浏览次数:20413 次
与维护计划有关的有三张表: 1.sysmaintplan_log:在维护计划运行后,会在此表中进行记录; 2.sysjobschedules:代理作业的作业信息 3.sysmaintplan_subplans:记录维护计划的子计划信息 4.sysjobs_view:相关的作业信息 这4张表有着PK和FK的关联关系,在删除作业时,就容易因为发生FK的冲突而导致失败。 具体的处理方法如下: USE [msdb] declare @job_name varchar(100) set @job_name = N'HostpitalTestPlan.Subplan_Reset' --删除在计划里面的日志 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
------解决方案--------------------
这个删除不掉,大概要在SQL2012解决。
http://www.cnblogs.com/nzperfect/archive/2010/12/22/1913996.html
------解决方案--------------------
DELETE 语句与REFERENCE约束"FK_syscollector_sets_collection_sysjobs"冲突。 该冲突发生于数据库"msdb"。。。。。。。。。。。。。。。。 问题不都给你了嘛... 有外间约束嘛.. 在指定的表里..找到这个约束的行...把 主表的 约束行先删除..然后删除子表的约束行..你的这个作业就删除了!
------解决方案--------------------
同意3楼的看法,不晓得2楼的答案是咋个来的- -好飘渺