"Le processus A ne lit qu'une partie des données de l'enregistrement. Le temps de l'unité centrale est consacré au processus B qui termine l'action d'écriture. Le processus A s'exécute et termine la requête, de sorte que les données reçues par le processus A ne sont pas complètes. (certaines données anciennes et certaines données nouvelles)"
Heureusement, cela ne se produit pas avec les bases de données. Une ligne est lue complètement avant qu'un autre thread/processus ne soit autorisé à la modifier (et vice versa).
L'un des problèmes que vous rencontrerez dans votre scénario est le verrouillage des tables. Pendant l'exécution de la mise à jour par lots, la table sera verrouillée la plupart du temps et la récupération des données sera très lente. Une ligne en cours de mise à jour ne peut pas être lue.
L'approche snapshot/update/switch que vous avez mentionnée dans votre message original pourrait être la meilleure approche.