I also created a similar approach as was mentioned by @sri, however using $wpdb vs wp_update_post should be more performant and configurable.


    /**
     * Reset the slugs on a particular post type to use the default sanatized slugs
     * @param  string  $post_type         filter by post type
     * @param  int $offset                set the paginated post to start
     * @param  boolean $force_guid_update * WARNING * never enable this
     *
     * @example add the following code into your theme's functions.php file, ensure
     * that the desired post type is set when calling wp20140226_reset_slugs('post');
     * Then navigate to wp-admin/options-permalink.php to activate query to reset slugs.
     * Depending on how many posts need to be updated this method may take quite 
     * some time, on a shared host there may be a need to set the $offset argument
     * to limit the amount of time the script runs and use multiple calls by adjusting
     * the offset to progress through the entire record set.
     * 
     */
    function wp20140226_reset_slugs( $post_type = null, $offset = 0, $$force_guid_update = false ){
    	global $pagenow, $wpdb;
    
        if ( $pagenow != 'options-permalink.php' || empty($post_type) )
    		return;
    
    	$get_post_args = array(
    		'post_type' => $post_type, 
    		'post_status' => 'any'
    		);
    
    	if( $start_post == 0 ){
    		$get_post_args['posts_per_page'] = -1;
    	} else {
    		$get_post_args['offset'] = $offset;
    	}
    
    	$posts_to_fix = new WP_Query( $get_post_args );
    
    	foreach( $posts_to_fix->posts as $post_to_fix ){
    		$wpdb->update( 
    			$wpdb->posts, 
    			array( 'post_name' => sanitize_title( $post_to_fix->post_title ) ), 
    			array( 'ID' => $post_to_fix->ID ), 
    			array( '%s' ), 
    			array( '%d' ) 
    		);
    	}
    
    	// you should really leave this alone (do not set to true unless you need to)
    	//http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
    	if( $force_guid_update ){
    		$siteurl = trailingslashit( get_option('siteurl') );
    		$wpdb->query( "UPDATE {$wpdb->posts} SET guid = CONCAT( '{$siteurl}?p=', ID ) WHERE post_type = {$post_type} OR post_type = 'revision';" );
    	}
    	
    	add_action('admin_notices', 'wp20140226_reset_slugs_admin_notice');
    
    }
    
    /**
     * notify the user when the reset slug queries are run
     */
    function wp20140226_reset_slugs_admin_notice(){
    	?>
        <div class="updated">
            <p><?php _e('You have successfully run the reset slugs function, please disable or suffer impact when in the admin.'); ?></p>
        </div>
        <?php
    }
    
    wp20140226_reset_slugs('post'); // change this to be your custom post type

source: https://gist.github.com/codearachnid/9243595