Remplacer en masse le contenu des tables SQL Server

bulk-load sqlbulkcopy sql-server

Question

Mon application ASP.NET MVC comporte un certain nombre de serveurs Web accédant à une base de données SQL Server via Entity Framework 6. La base de données comporte 2 tables, avec une relation un à plusieurs entre elles.

Une fois par jour, tout le contenu des deux tables doit être remplacé par un nouvel ensemble de données chargé sur Internet à partir d'un service Web distant. Le nombre d'enregistrements peut être dans les dizaines de milliers. Les enregistrements ne sont pas très gros, avec environ 10 champs nvarchar et entiers chacun.

Je prévois qu'un serveur Web charge l'ensemble de données du service Web distant dans les 2 tables SQL Server. Il faudrait supprimer l'ancien contenu et charger efficacement le nouveau contenu. Pendant ce temps, il faut empêcher les autres serveurs Web d’accéder aux tables (probablement en les verrouillant).

Je cherche des options rapides pour y parvenir, ainsi que leurs avantages et inconvénients. Si un package NuGet ou une commande Entity Framework le fait pour moi, ce serait idéal.

Réponse populaire

Chargez-les dans des tables temporaires et MERGE (instruction de fusion) entre eux dans les tables à utilisation quotidienne.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi