CLR Integration and Transactions

APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

The System.Transactions namespace provides a 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.

In This Section

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.

See Also

Data Access from CLR Database Objects