CLR Integration and Transactions

The System.Transactions namespace is new in the Microsoft .NET Framework version 2.0. It provides a new transaction framework that is fully integrated with ADO.NET and SQL Server common language runtime (CLR) integration. System.Transactions and ADO.NET work together to extend and simplify the use of local and distributed transactions in managed applications.


A CLR user-defined procedure (UDP) cannot establish a connection to the same server it is running on (a loopback connection) and enlist in the same transaction. If this is attempted, the connection attempt will be blocked and control will not be passed back to the UDP. This will result in a timeout error (Msg 1206) on the UDP.

For more information about transactions and the .NET Framework, see "Performing Transactions" and "Leveraging Transactions" in the .NET Framework SDK.

For more information about transactions in SQL Server, see Transactions (Database Engine).

Transaction Promotion

Describes the ability to promote transactions, and how to use this feature.

Accessing the Current Transaction

Describes how to access a transaction currently running in-process on SQL Server.

Using System.Transactions

Describes how to use the System.Transactions application programming interface (API) in your managed application.

Transaction Lifetimes

Describes the difference in lifetime between transactions started in Transact-SQL stored procedures and transactions started in CLR applications.

Community Additions