【问题标题】:Cannot Delete a SQL job无法删除 SQL 作业
【发布时间】:2009-11-25 10:12:45
【问题描述】:

我在 SQL 2005 数据库上禁用了日志传送,并删除了辅助服务器上的日志传送数据库。但是,我无法通过 T-SQL(sp_delete_log_shipping_primary_secondary、sp_delete_job)或使用辅助服务器上的管理工作室来删除 LSRestore_DB___ 作业。它只是不会去。查询持续执行了 7 个小时。 试过禁用,还是删不掉。也重启了服务器。还尝试了谁能帮我删除这个 SQL 作业吗?

【问题讨论】:

    标签: sql jobs


    【解决方案1】:

    有一篇好文章Can’t Delete Jobs。在文章中作者提供了解决问题的脚本,干得好!

    `CREATE PROC dbo.DropJob
    @JobName AS VARCHAR(200) = NULL 
    AS 
    DECLARE @msg AS VARCHAR(500);
    
    IF @JobName IS NULL
    BEGIN 
    SET @msg = N'A job name must be supplied for parameter @JobName.';
    RAISERROR(@msg,16,1);
    RETURN;
    END
    IF EXISTS (
    SELECT subplan_id FROM msdb.dbo.sysmaintplan_log WHERE subplan_id IN
    ( SELECT subplan_id FROM msdb.dbo.sysmaintplan_subplans WHERE job_id IN 
    (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = @JobName)))
    BEGIN
    DELETE FROM msdb.dbo.sysmaintplan_log WHERE subplan_id IN
    ( SELECT subplan_id FROM msdb.dbo.sysmaintplan_subplans WHERE job_id IN 
    (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = @JobName));
    
    DELETE FROM msdb.dbo.sysmaintplan_subplans WHERE job_id IN
    (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = @JobName);
    
    EXEC msdb.dbo.sp_delete_job @job_name=@JobName, @delete_unused_schedule=1;
    END
    ELSE IF EXISTS (
    SELECT subplan_id FROM msdb.dbo.sysmaintplan_subplans WHERE job_id IN 
    (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = @JobName))
    BEGIN 
    DELETE FROM msdb.dbo.sysmaintplan_subplans WHERE job_id IN 
    (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = @JobName);
    
    EXEC msdb.dbo.sp_delete_job @job_name=@JobName, @delete_unused_schedule=1;
    END
    ELSE
    BEGIN 
    EXEC msdb.dbo.sp_delete_job @job_name=@JobName, @delete_unused_schedule=1; 
    END 
    GO`
    

    现在您可以使用以下命令调用 SP;

    `USE [msdb];
    EXEC dbo.DropJob @JobName = N'Shrink_AWP_Databases.Subplan_1';`
    

    【讨论】:

      【解决方案2】:

      您是否尝试过设置允许编辑系统表,并直接进入保存作业信息的系统表并尝试从那里删除行?

      确保在执行此操作时格外小心,不推荐,但有时需要直接编辑系统表。

      【讨论】:

        猜你喜欢
        • 2013-11-17
        • 2016-09-26
        • 1970-01-01
        • 1970-01-01
        • 2021-11-23
        • 2021-07-26
        • 1970-01-01
        • 2021-04-14
        • 1970-01-01
        相关资源
        最近更新 更多