If your DBMS is SQL Server 2000 and you use TransactionScope, a distributed transaction is created even for a local transaction. However, SQL Server 2005 (and probably SQL Server 2008) is smart enough to realize that a distributed transaction is not needed. I do not know if this applies only to the local database, or even true if you use a transaction with only one database, even if it is located on a remote server. http://davidhayden.com/blog/dave/archive/2005/12/09/2615.aspx
One hint, you can use a batch request to avoid TransactionScope.
http://subsonicproject.com/docs/BatchQuery
BatchQuery, QueueForTransaction, and ExecuteTransaction will not use TransactionScope (of course, it depends on the provider implementation), but select the transaction mechanism of the main data provider (SqlTransaction in this case), which does not require MSTDC.
source share