in reply to SQL table recreation

I'm not sure which way is best, but there are certainly many ways to do this from Perl. One example, using my DBIx::SQLEngine module:
my $sqldb = DBIx::SQLEngine->new( $dbi_dsn, $user, $passwd ); push @sql, [ $sqldb->sql_create_table( $tablename, $sqldb->detect_table( $tablename ) ) ]; push @sql, $sqldb->visit_select( table => $tablename, sub { [ $sqldb->sql_insert( values => (shift) ) ] } );

The @sql array now contains a create table and several insert statements, each as a reference to an array of a SQL statement followed by a number of placeholder parameter values.

(This is not specific to MS SQL Server, so you'll probably achieve better results with one of the Windows-specific solutions others have posted, but I thought it'd be good to include a Perl implementation.)