Let's assume the following code :
try 
{
    using(SqlConnection conn = new SqlConnection(...))
    using(SqlTransaction trans = conn.BeginTransaction())
    using(SQlCommand cmd = new SqlCommand())
    {
        ...
        Sql Exception occurs !
        trans.Commit()
    }
} catch (SqlException) 
{
}
Will there be an automatic rollback because of this exception or is it mandatory to call trans.Rollback() ?
 
    