Сервер немедленно откатывается от любой незавершенной транзакции при закрытии сеанса.
Пул ADO отвечает за освобождение любой незавершенной транзакции перед возвратом транзакции в пул. Если вы удалите соединение с ожидающими транзакциями, он откатится.
Сделки могут запускаться клиентом с использованием ADO API (SqlConnection.BeginTransaction) или путем выполнения инструкции BEGIN TRANSACTION. В протоколе TDS между клиентом и сервером есть специальные токены, информирующие клиента, когда транзакция была запущена/завершена так, что ADO знает, что соединение имеет ожидающие транзакции, даже если они запущены в коде T-SQL.
Связанный: http://stackoverflow.com/q/4978372/1569 –