É necessário descartar SqlConnection e SqlCommand?

É necessário descartar separadamente um SqlConnection e um SqlCommand?

Estou fazendo alguns trabalhos de manutenção em um aplicativo e encontrei o seguinte código:

public void CallStoredProc(string storedProcName)
{
    using (SqlCommand command = new SqlCommand(storedProcName, CreateConnection()))
    {
        command.CommandType = CommandType.StoredProcedure;
        command.Connection.Open();

        // Additional code here.

        command.ExecuteNonQuery();
    }
}

Isso limpará o SqlConnection corretamente, em circunstâncias normais e se houver um erro? Ou teríamos que alterar o código para algo como:

public void CallStoredProc(string storedProcName)
{
    using (SqlConnection connection = CreateConnection())
    {
        using (SqlCommand command = new SqlCommand(storedProcName, connection))
        {
            command.CommandType = CommandType.StoredProcedure;
            command.Connection.Open();

            // Additional code here.

            command.ExecuteNonQuery();
        }
    }
}

questionAnswers(2)

yourAnswerToTheQuestion