Si vous ne pouvez pas obtenir de temps d'arrêt programmé...
créer deux nouvelles colonnes :nvarchar(max)processedflag INT DEFAULT 0
Créer un index non clusterisé sur le processingflag
Vous disposez de UPDATE TOP (vous souhaitez mettre à jour le top trié par la clé primaire).
Définissez simplement l'indicateur de traitement sur 1 lors de la mise à jour afin que la prochaine mise à jour ne soit mise à jour que lorsque l'indicateur de traitement est toujours à 0
Vous pouvez utiliser @@rowcount après la mise à jour pour voir si vous pouvez sortir d'une boucle.
Je suggère d'utiliser WAITFOR pendant quelques secondes après chaque requête de mise à jour pour donner aux autres requêtes une chance d'acquérir des verrous sur la table et de ne pas surcharger l'utilisation du disque.