http kf.3g.qq.com:在SQL Server 2005上遇到了先删除已运行维护计划后,再删除代理中由其产生的作业...
来源:百度文库 编辑:中财网 时间:2024/07/06 16:56:55
在SQL Server 2005上遇到了先删除已运行维护计划后,再删除代理中由其产生的作业时,提示删除失败,如何处理?
问题:DELETE 语句与 REFERENCE 约束"FK_subplan_job_id"冲突。该冲突发生于数据库"msdb",表"dbo.sysmaintplan_subplans", column 'job_id'。
语句已终止。 (Microsoft SQL Server,错误: 547)
分析:与维护计划有关的有三张表:
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
安装SQL server时,遇到的问题
在vs2005 + sql server 2005 上运行 Club Web Site 示例
请问哪位高人知道如何在WIN2003系统上安装SQL Server 2005么?
SQL server 2000个人版是不是能安在XP上?
MS SQL Server 2000能安装在XP上吗
怎么在windows XP 上安装SQL Server 企业版
如何在个人版XP上安装标准版SQL server 2000
sql server在xp系统上为什么装不上?
如何在xp系统上安装sql server?
sql server2000 企业版能装在win2003 server上码?
如何在XP上安装SQL Server 2000?
为何sql server 2000 在电脑上不能安装
liunx 上运行sql server
Sql Server登录不上
在XP系统安装sql server 2000时遇到的问题
大家在使用SQL Server 2005和SQL Server 2000时,哪个版本比较好啊
sql server 2005
sql server 2005 下载
sql server 2005 下载
SQL Server数据丢失了:(
sql server 在什么地方下载
在什么地方下载SQL SERVER
SQL SERVER 2005安装了无法卸载?内详
怎样在SQL Server 2005中调试存储过程?