Os dois são equivalentes. Usar um objeto SqlTransaction permite que você coloque a transação em um
using alcance:using(SqlTransaction trn = conn.BeginTransaction ())
{
...
trn.Commit ();
}
Este é um padrão melhor na presença de exceções.
using alcance:using(SqlTransaction trn = conn.BeginTransaction ())
{
...
trn.Commit ();
}