The specified @job_name (job_name) does not exist

  • I just upgraded from SQL Server 2008 to SQL Server 2014. I am receiving a push from a data warehouse owned by our IT department. Once they finish their push they are entering a timestamp into a log table which has a trigger to start a job to process the data they just pushed. They are using a SQL Server account to perform the push and insert the timestamp. The trigger was originally failing because the account had no permissions to the msdb database. I resolved that by giving the account they are using SQLAgentUserRole permissions on msdb. Now the error we are seeing is "The specified @job_name (job_name) does not exist" which tells me that they have permission to execute the start_job stored procedure in msdb. Are there any other permissions the accounts needs to be able to actually find and start the job?

  • Perhaps a stupid question, but did you actually copy over the job to the new server? And did you make sure that the name is unchanged?

    If you answer yes to all the above, then you can also compare source code of the trigger to the list of jobs in Agent and check for different use of upper- and lower-case. Perhaps you accidentally switched case sensitivity during the upgrade?


    Hugo Kornelis, SQL Server/Data Platform MVP (2006-2016)
    Visit my SQL Server blog: https://sqlserverfast.com/blog/
    SQL Server Execution Plan Reference: https://sqlserverfast.com/epr/

  • The job did get moved and both the old and new servers are not case sensitive. I finally found a MS article explaining that you have to be the Owner of the job or a member of the sysadmin role in order to be able to execute a job. I changed the job owner to the account they are using for the data push and it's working now.

  • SQLAgentOperatorRole Permissions is also enough to execute non-owned jobs.

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply