We help IT Professionals succeed at work.

Running SQL server agent job steps based on condition

MRPT asked
I have a created a sql server job with two steps. I need to run step one based on a condition. If the condition doesn't staisfy run another step. (each step conatins an ssis package to run)

To implement this, I have created another step in the job which runs first with the condition.
 if the condition staisfies -set on success- go to step one. if the condition fails -raiseerror-set on failure- go to step2

Is there any other way to do this other than using onsucess and onfailue? If the condition does not satisfy, I do not want to use raiseerror. It should just execute step 2
Watch Question

EvilPostItIT Director

You could do this with a single parent package which executes the child packages using the execute package component. based up these criteria.

The only condition based criteria you have in a SQL Server agent job is success, failure and completion (Regardless of exit code).
Both ways are good. With your way of job, you can just add the condition in the first step and if it satisfies, run the package with DTSexec else run another with DTSexec. But you need to maintain another tracking table to find out what run if something goes wrong.
Your current way looks more organized to me.