J'ai deux serveurs SQL : MyServer y LeurServeur . Je n'ai pas la possibilité de relier ces deux serveurs.
J'aimerais récupérer toutes les données d'une table sur LeurServeur et le copier dans MyServer sur une base quotidienne. Le nombre actuel d'enregistrements dans la table est de plus de 600k et va augmenter lentement. Les tables sont identiques l'une à l'autre, les noms des colonnes et les types de données.
Ma première idée était d'essayer de remplir un tableau de données avec un fichier de type Select *
contre TheirServer, et ensuite essayer une SQLBulkCopy
en MyServer . Naturellement, cela provoque une exception System.OutOfMemoryException sur le serveur Web. En suivant ce raisonnement, mon prochain plan d'attaque est d'utiliser un fichier de type SQLDataReader
pour extraire environ 50 000 enregistrements à la fois, puis interrompre la lecture et copier en masse ces enregistrements, rincer et répéter. Avant de faire cela, j'ai pensé que je pourrais voir si je ne m'y prends pas de la mauvaise façon.
Note : Puisque je ne demande qu'une meilleure pratique, peu m'importe que le code soit en C# ou en VB, ou qu'il y ait du code tout court.