共用方式為


Is there any way you can execute an SSIS package whose TransactionOption property is set to Required, without having the MSDTC service running?

That was the question one develepment consultant asked me. My initial answer, was what I typically answer when I'm asked any of these questions: "I dunno, but let me check it for you." :-)

After reviewing the source code of SSIS runtime in SQL Server 2005, the answer is: "No, it isn't possible." Even in the case where you're working with a single connection manager and are doing nothing else within the package but working with that connection manager only, your MSDTC must be started.

Once any container has its TransactionOption property set to Required, it either enlists it in an already existing transaction or begins a new distributed transaction, which requires a transaction dispenser object from MSDTC. That  explains why DTC must be started.

Many thanks for reading me!