首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误14274 -无法删除和重新添加作业

错误14274 -无法删除和重新添加作业
EN

Stack Overflow用户
提问于 2010-06-19 05:25:34
回答 1查看 2.1K关注 0票数 7

我正在尝试创建一个相当简单的脚本来处理SQL Server代理作业。它执行两个任务:

1)如果给定的作业存在,则将其删除2)创建作业

(由于业务要求,我不能修改现有作业,脚本必须删除并重新创建它。)

第一次运行脚本运行正常(创建作业)。在此之后运行任何时间都会产生错误14274“无法添加、更新或删除源自MSX服务器的作业”。

我在这方面做了很多搜索,大多数解决方案都围绕着服务器名称的更改。我的服务器名称没有更改,也从来没有更改过。

这就是我所拥有的:

代码语言:javascript
复制
USE [msdb];

SET NOCOUNT ON;

DECLARE @JobName NVARCHAR(128);
DECLARE @ReturnCode INT;
declare @errCode INT;

SET @JobName = 'AJob';

BEGIN TRANSACTION;

DECLARE @jobId uniqueidentifier;

SET @jobId = (SELECT job_id from msdb.dbo.sysjobs where name = @JobName);

IF(@jobId IS NOT NULL) -- delete if it already exists
begin
   EXEC @ReturnCode = msdb.dbo.sp_delete_job @job_id=@jobId
   IF(@@ERROR <> 0 OR @ReturnCode <> 0)
    begin
        set @errCode = @@ERROR;
        GOTO QuitWithRollback;
    end
    print 'deleted job';   
end


-- create the job
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=@JobName,
        @enabled=1,
        @notify_level_eventlog=0, -- on failure
        @notify_level_email=0,
        @notify_level_netsend=0, -- never
        @notify_level_page=0,
        @delete_level=0,
        @description=NULL,
        @owner_login_name=N'sa',
        @notify_email_operator_name=NULL,
      @job_id = @jobId OUTPUT
IF(@@ERROR <> 0 OR @ReturnCode <> 0)
begin
    set @errCode = @@ERROR;
   GOTO QuitWithRollback;
end
print 'added job';

-- Server
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver
   @job_id = @jobId
IF(@@ERROR <> 0 OR @ReturnCode <> 0)
   GOTO QuitWithRollback;

COMMIT TRANSACTION;
RETURN;

QuitWithRollback:
   IF(@@TRANCOUNT > 0)
      ROLLBACK TRANSACTION;
   print 'Err: ' + CAST(@errCode AS varchar(10)) + ' ret: ' + cast(@ReturnCode as varchar(10));

我在SQL2008 SP1上运行它。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-21 10:19:54

实际上,我是在胡闹了几次之后才发现这个问题的。

似乎有必要在删除和创建作业的语句之间将@JobId变量设置为NULL。一旦你这样做了,错误就消失了,它就能工作了。

我希望这对某些人有帮助!

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3073177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档