Comment transférer des données entre différents servers de database – Pas de SSIS, pas de LinkedServer

Comment puis-je transférer des données entre différents servers de database, c'est un travail quotidien, c'est-à-dire:

 Insérer dans ServerA..table1
    select datatables de ServerB.table2.

(Ceci est juste un exemple, la situation réelle est que nous sélectionnons des données à partir de nombreux servers, puis faisons une jointure, puis insérons dans la destination).

Nous ne pouvons pas utiliser SSIS , nous ne pouvons pas utiliser le server lié , Comment pouvons-nous faire cela?

BTW, c'est un travail quotidien, et datatables sont énormes.

Un simple script BCP en command line devrait fonctionner pour vous. Par exemple:

 bcp AdventureWorks2012.Sales.Currency out Currency.dat -T -c -SServer1 bcp AdventureWorks2012.Sales.Currency in Currency.dat -T -c -SServer2 

Voici plus de détails

La structure de synchronisation peut valoir le coup d'oeil: http://msdn.microsoft.com/en-us/sync/bb736753.aspx

Regardez cette question: la version de sauvegarde SQL est incompatible avec ce server

Les premières options de ma réponse devraient fonctionner pour votre cas

Vous pouvez utiliser la méthode C # .net SqlBulkCopy.

Ma réponse a été convertie en commentaire mais j'ajoute quelques informations supplémentaires.

Je suppose que vous cherchez cette réponse sur SO:

What is the best way to auto-generate INSERT statements for a SQL Server table?

Une fois que vous avez le code, ajoutez USE your_databasename_where_to_copy_data au début, exécutez et voila

Edit: Comme vous voulez le faire à la volée, en utilisant le code, essayez quelques-unes des solutions fournies sur cette question sur SO . Fondamentalement, il est similaire à votre proposition de code, avec quelques différences, comme par exemple:

 INSERT INTO bar..tblFoobar( *fieldlist* ) SELECT *fieldlist* FROM foo..tblFoobar