Is there a way to change the Template of a page from Default Template to another programatically?
Looking at the wp_postmeta table, you can see the page template is stored there.
Therefore, a simple call to
update_post_meta (codex) should do the trick :
update_post_meta( $post_id, '_wp_page_template', 'my_template.php' );
The filename and extension is necessary, as per my example.