我在存储过程中要删掉一个job。我用sp_help_job判断的。job不存在时还是报错。请各位高手帮助

---------------------------------------------------------------

微軟自己的寫法: 假設你的job 為 'batest'
當然你可以修改以下代碼變得簡單一點

DECLARE @JobID BINARY(16)
-- Delete the job with the same name (if it exists)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'batest')
IF (@JobID IS NOT NULL)
BEGIN
-- Check if the job is a multi-server job
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- There is, so abort the script
RAISERROR (N'Unable to import job ''batest'' since there is already a multi-server job with this name.', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- Delete the [local] job
EXECUTE msdb.dbo.sp_delete_job @job_name = N'batest'
SELECT @JobID = NULL
END
END
簡單一點的寫法:
declare @yourJob nvarchar(100)
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (name = @yourJob) AND (server_id <> 0)))

EXECUTE msdb.dbo.sp_delete_job @yourJob

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus