70-463 · Question #60
You are editing a SQL Server Integration Services (SSIS) package that contains three Execute SQL tasks and no other tasks. The three Execute SQL tasks modify products in staging tables in…
The correct answer is A. Change the TransactionOption property of the package to Required. Setting the package's TransactionOption to Required creates one ambient transaction that all child tasks set to Supported will join, enabling a full rollback if any task fails.
Question
You are editing a SQL Server Integration Services (SSIS) package that contains three Execute SQL tasks and no other tasks. The three Execute SQL tasks modify products in staging tables in preparation for a data warehouse load. The package and all three Execute SQL product tasks have their TransactionOption property set to Supported. You need to ensure that if any of the three Execute SQL product tasks fail, all three tasks will roll back their changes. What should you do?
Options
- AChange the TransactionOption property of the package to Required.
- BChange the TransactionOption property of all three Execute SQL product tasks to Required.
- CMove the three Execute SQL product tasks into a Foreach Loop container.
- DMove the three Execute SQL product tasks into a Sequence container.
How the community answered
(52 responses)- A83% (43)
- B6% (3)
- C2% (1)
- D10% (5)
Why each option
Setting the package's TransactionOption to Required creates one ambient transaction that all child tasks set to Supported will join, enabling a full rollback if any task fails.
When a package's TransactionOption is Required, SSIS starts a distributed transaction at the package level. Child tasks with TransactionOption set to Supported automatically enlist in that ambient transaction rather than starting their own. If any of the three Execute SQL tasks fails, the single encompassing transaction is rolled back, undoing all three tasks' changes atomically.
Setting all three tasks to Required would cause each task to start its own independent transaction, so a failure in one task would not roll back the others.
A Foreach Loop container provides looping logic but does not create or manage a transaction scope and has no effect on rollback behavior.
A Sequence container is used for grouping and precedence control only; it does not create a transaction unless its own TransactionOption is explicitly set.
Concept tested: SSIS TransactionOption property and distributed transaction enrollment
Source: https://learn.microsoft.com/en-us/sql/integration-services/integration-services-transactions
Topics
Community Discussion
No community discussion yet for this question.