在SQL Server 2008上遇到了删除作业失败的问题。 547错误

删除 对于 Job“temp1.Subplan_1”失败。 (Microsoft.SqlServer.Smo)

DELETE 语句与 REFERENCE 约束"FK_subplan_job_id"冲突。该冲突发生于数据库"msdb",表"dbo.sysmaintplan_subplans", column ‘job_id’。
语句已终止。 (Microsoft SQL Server,错误: 547)

与维护计划有关的有三张表:
1.sysmaintplan_log:在维护计划运行后,会在此表中进行记录;
2.sysmaintplan_subplans:记录维护计划的子计划信息
3.sysjobs_view:相关的作业信息

这三张表有着PK和FK的关联关系,在删除作业时,就容易因为发生FK的冲突而导致失败。

具体的处理方法如下:

USE [msdb]
declare @job_name varchar(100)
set @job_name = N’test.Subplan_1’

–删除在计划里面的日志

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 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)

–删除作业,也可以直接在Mangement Studio里面直接删除

delete
from msdb.dbo.sysjobs_view where name = @job_name

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值