+2  A: 

Does this help? SqlBulkCopy Class

David Stratton
+1 fo shizzle (for sure)
Jader Dias
I am using your suggestion, but is important to say that the Connection and Command timeouts should be augmented for large tables / narrow bandwidths
Jader Dias
+1  A: 

I assume you cannot link the servers directly or indirectly and use DTS to do this?

There is a Microsoft.SqlServer namespace that you can use to interact with SQL Server with (see simple example, I once used this to do a complicated business rules data sync operation between remote and local databases. But that was all code, not a point & click utility.

EDIT: You can create and schedule DTS packages (think scripts) to execute multi step data transfer & transformation processes. Here is a link that talks about interacting with DTS in c#

ongle
I am not sure what is a DTS
Jader Dias
http://en.wikipedia.org/wiki/Data_Transformation_Services
Jader Dias
Besides my ignorance of the acronym, I used this DTS to transfer data between those servers with the Sql Server Management Studio, but I don't know how to do it programatically
Jader Dias
+1  A: 

How about doing a database backup and restore programatically?

msvcyc
How would I do that?
Jader Dias
check out this link which uses TSQL to backup and restore using SPs - http://www.sqlmag.com/Articles/ArticleID/46560/46560.html?Ad=1
msvcyc
A: 

Add the first server as a linked server to the second one. Create the necessary tables and use plain INSERT...SELECT to copy the data. You could also use OPENDATASOURCE function instead of creating a linked server.

If you cannot configure the servers to access each other, you could just read the data to your app - using a DataTable or DataSet, - and then use SqlBulkCopy to write it to another server.

VladV