在SQL Server 2008上删除已运行维护计划后,维护计划job没有自动删除掉,手工再删除维护计划job,提示删除失败。

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

与维护计划有关的有三张表:
1.sysmaintplan_log(记录维护计划运行log);
2.sysjobschedules(记录代理作业的作业信息);
3.sysmaintplan_subplans(记录维护计划的子计划信息);
4.sysjobs_view(相关的作业信息)

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

具体的处理方法如下:

use [msdb]

declare @job_name varchar(100)

set @job_name = N'job_name'

--注:job_name为维护计划对应的job name

--删除在计划里面的日志

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

delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法的更多相关文章

  1. 删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)

    删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突.) use msdb select * from sysmaintplan_plans --查看 ...

  2. entityframework删除时提示“DELETE 语句与 REFERENCE 约束”的解决方法。

    1.加入List对象的Include var entity = db.XinDes.Include("Reviews").First(); db.XinDes.Remove(ent ...

  3. 数据表列名与数据库关键字冲突,在Hibernate下的解决办法

    设计了一个数据库,某一个列名字是key,这与mysql数据库关键字冲突了,Hibernate下save总是报错. 在mysql命令中,解决办法很简单,只需要将关键字key用引号括起来就好了. 在Hib ...

  4. Azure Sphere–“Object reference not set to an instance of an object” 解决办法

    在开发Azure Sphere应用时,如果出现项目无法编译,出现“Object reference not set to an instance of an object”时,必须从下面两个方面进行检 ...

  5. switch语句 initialization of 'XXX' is skipped by 'case' label 原因及解决办法--块语句的作用

    出错代码段: switch (t) { case 0:  int a = 0;  break; default:  break; }编译时提示:“error C2361: initialization ...

  6. 清空具有外键约束的表时报ERROR 1701(42000)的解决办法

    ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`furion`.`tbl_fr ...

  7. DELETE语句总结

    一.基本语句 1.SQL DELETE 语法 DELETE FROM table_name WHERE condition; 请注意 删除表格中的记录时要小心!注意SQL DELETE 语句中的 WH ...

  8. sql delete语句

    如果要删除数据库表中的记录,我们可以使用DELETE语句. DELETE语句的基本语法是: DELETE FROM <表名> WHERE ...; 例如,我们想删除students表中id ...

  9. SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subplan_job_id"

    案例环境: 数据库版本: Microsoft SQL Server 2005 (Microsoft SQL Server 2005 - 9.00.5000.00 (X64) ) 案例介绍: 对一个数据 ...

随机推荐

  1. 提升PHP速度的53个建议

      1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用e ...

  2. jquery easyui+layer后台框架

    最近使用jquery easyui搭建了一个后台框架,以方便以后使用 上图先: 下载地址:CSDN下载

  3. 使用PHP对数据库输入进行恶意代码清除

    这是一个有用的PHP函数清理了所有的输入数据,并删除代码注入的几率. function sanitize_input_data($input_data) { $input_data = trim(ht ...

  4. C语言 创建一个 txt 文件 bin输入字符 保存文件在工作文件夹里

    int main(void) { char s[70]; FILE *fp; fp=fopen("123.txt","r"); if((fp=fopen(&qu ...

  5. gtest以及测试小结

    所有的测试,都是让未知的东西和已知的东西进行比较,如果测试结果和预期的一样,那么就认为被测对象是OK的否则视为有问题. python的单元测试是写一堆继承了unittest.TestCase类,每个类 ...

  6. Ubuntu 怎么在右键添加打开终端

    方法一: 搜索nautilus-open-terminal安装 命令行:sudo apt-get install nautilus-open-terminal        (如果提示为找的什么的就s ...

  7. Codeforces 22B Bargaining Table

    http://www.codeforces.com/problemset/problem/22/B 题意:求出n*m的方格图中全是0的矩阵的最大周长 思路:枚举 #include<cstdio& ...

  8. AD 10 直接出 BOM 的漂亮效果

    EDA 工具出BOM 需要什么格式,太多人费尽心思在代码级别做了很多工作,,,,,,,不提,,,,, 真正的BOM 需要东西呢?大家可以讨论讨论.-附件是G41 一个小板的 demo BOM,由AD1 ...

  9. Why Memory Barrier?

    引言:xchg做了什么? 首先,xchg eax, ecx并不会比mov edx, eax + mov eax, ecx + mov ecx, edx这三条指令加一起快,原因是xchg有副作用. Mi ...

  10. Cmake 脚本对项目输出路径和输出头文件的路径定义

    对Lib项目的统一输出路径以下时解决方案: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_O ...