I am working on a problem where I get a job_id and job name and delete a scheduled job using a stored procedure. Here I need to pass job name as input parameter.
I am using
select job_id, name from msdb.dbo.sysjobs
and get this:
| job_id | name |
|---|---|
| sjkfaih | usp_1 |
| fjoajff | usp_2 |
I want to delete the stored procedure by name instead of job_id as it become little complex.
I want the stored procedure to take job_name as a parameter but return Job_id so that it I can execute it by using
EXEC msdb.dbo.sp_delete_job @job_id = N'@JobId', @delete_unused_schedule = 1
This is my attempt:
DECLARE @JobName nvarchar(MAX)
DECLARE @JobId NVARCHAR(MAX)
DECLARE Job_ID, Job_Name CURSOR FOR
SELECT job_id, name
FROM msdb.dbo.sysjobs;
OPEN Job_ID, Job_Name;
FETCH NEXT FROM Job_ID, Job_Name INTO @JobId, @JobName;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC msdb.dbo.sp_delete_job @job_id = N'@JobId', @delete_unused_schedule = 1
FETCH NEXT FROM Job_ID INTO @JobId;
END
CLOSE Job_ID;
DEALLOCATE Job_ID;
I think I am doing something wrong as I am getting a syntax error. Please suggest me some improvements. TIA.