The default constraint is Success that is represented with Green Arrow between Tasks.
In Fig 1, The Execute SQL Task has to execute successfully to pass execution control to Data Flow Tasks. If Execute SQL task will fail then Data Flow Tasks will not execute.
If Execute SQL Task task fails, then control will not pass to Data Flow Tasks as shown in Fig 3.
There could be requirements in which even Execute SQL Task executes successfully or fail, we always want to execute Data Flow Tasks. For this requirement, We need to configure Precedence Constraint to Completion.
Double click on the Green Arrow between the Tasks and then configure as shown below in Fig 4.
The Data Flow Tasks will execute on Completion of Execute SQL Task ( Completion can be success or failure status).