- Transações implícitas:http://msdn.microsoft.com/en -us/library/ms188317.aspx
- SET IMPLICIT_TRANSACTIONS { ATIVADO | OFF} http://msdn.microsoft.com/en-us/library /ms187807.aspx
Basicamente, em c# quando você define o TransactionScope para Implicit, ele chama o comando SQL Server SET para colocar a conexão no modo IMPLICIT_TRANSACTIONS. Qualquer coisa que você faça (usando um dos comandos listados no segundo link) inicia uma transação que é mantida aberta até um commit é emitido. Se nenhum commit for emitido no final de uma conexão, um ROLLBACK implícito será executado.
Isso difere da configuração OFF, que também coloca cada instrução em uma transação - a diferença é que no modo OFF (portanto, as transações são explícitas), cada transação (instrução singular) é imediatamente comprometido.