## SSIS: Precedent Constraints

Precedent constraints link tasks in the Control flow and control the behavior of downstream tasks. They have two parts, constraint options and multiple constraints. In a sense, the first part defines the test for an individual constraint while the section part defines the condition that all the constraints must meet to pass processing downstream to the next Task.

Hopefully, this will make more sense after I explain the transform.

**Constraint options**

These options apply to each path. There are 4 evaluation operations.

- Constraint: Evaluated based on the processing of the earlier task. There are 3 possible conditions: Success, Failure and Completion.
- Expression: Configured in the expression section. This is the same expression tool you see everywhere else in SSIS. The result of this is either True, the condition matches, or False, it is not matched.
- Constraint and expression: Both the constraint and the expression must be true.
- Constraint or expression: Either the constraint is true, or, the expression is true, or, both.

The value field is essentially the result of the operation. There are 3 potential outcomes.

- Success: The earlier task executed successfully.
- Failure: The earlier task failed.
- Completion: The earlier task completed.

The second part of the editor applies when there is more than one constraint connected. In that case one of two things can happen:

- AND: All constraint conditions are True.
- OR: At least one constraint condition evaluates to True.

This will make a lot more sense with some examples. Hopefully this helps someone. It’s a really basic programming concept but the way it’s implemented will probably confuse a few people.