El servidor retrotraerá inmediatamente cualquier transacción no confirmada cuando se cierre una sesión.
El grupo ADO es responsable de borrar cualquier transacción sin compromiso antes de devolver una transacción al grupo. Si dispone de una conexión con transacciones pendientes, se revertirá.
Las transacciones pueden ser iniciadas por el cliente usando la API ADO (SqlConnection.BeginTransaction) o ejecutando una instrucción BEGIN TRANSACTION. El protocolo TDS entre el cliente y el servidor tiene tokens especiales que informan al cliente cuando una transacción se inició/cometió así, por lo que ADO sabe que la conexión tiene transacciones pendientes, incluso si se iniciaron en el código T-SQL.
relacionadas: http://stackoverflow.com/q/4978372/1569 –