none
SQL SERVER 2017 编辑计划任务出错如何处理? RRS feed

全部回复

  • Hi @A83547,

    你这个维护计划是用来做什么的?我看内容都是空的。
    如果你的维护计划是用来做定期备份,那么数据库备份不要使用中文路径与中文文件夹名称,不然就会报索引超出范围,必须为非负值并小于集合大小的错。



    2021年12月1日 7:05
  • 原来有的,只不过打开出错,就看不到了。
    2021年12月1日 7:57
  • Hi,

    那你这个维护计划原来是做什么的?之前能够正常运行吗?还是创建的时候就有问题?还是创建完成后想修改下,但是点击修改就出现了截图的情况?你这个维护计划能删了重建吗?


    2021年12月2日 0:22
  • 原来有的,只不过打开出错,就看不到了。
     这个我之前也遇到过,是SSMS客户端问题,换台机器的客户端连接操作就行,或者把SSMS关掉,SSMS进程也干掉试试
    2021年12月2日 1:51
  • 您好,

    没收到你的回复。问题有什么进展吗?请与我们分享问题的进展情况,以便我们跟进。



    2021年12月3日 6:13
  • 以前建的,有运行过。可以运行的。就是想修改就不行,想删掉重建,也删不掉。
    2021年12月3日 8:58
  • Hi @A83547,

    你用的是最新的SSMS18.10吗?试着用SSMS 18.10删除或者修改维护计划。

    如果还是存在问题,请通过SQL代码来删除。

    删除需要分两部分:

    一:删除【管理】中的维护计划;
    
    USE [msdb]
    SELECT * FROM sysmaintplan_plans           --查看数据库中所有的维护计划
    DELETE sysmaintplan_plans WHERE name=''         --删除具体名称的维护计划
    
    二:删除【Sql server代理】中的作业;
    
    USE [msdb]
    Declare @job_name varchar(100)
    SET @job_name = N'jobName'
    --注: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

    ******************************************************************************************
    如果回复有帮助,请点击“接受答案”并点赞,因为这可以帮助其他社区成员寻找类似的帖子

      
    2021年12月7日 3:27