Dans certains cas, des mises à jours peuvent être très longues.
De plus l'exécution d'un script se fait au travers d'une transaction et si un problème survient, tout est perdu.
La solution est donc le passage par une boucle qui fait des mises à jour par lot de 10 (dans cet exemple).
Source / Exemple :
-------------------------------------------------------------------------
-- Dans la table destination on retrouve un champ ID et un champs Text --
-------------------------------------------------------------------------
WHILE EXISTS(SELECT ChampID FROM TableDestination WHERE ChampData='')
BEGIN
UPDATE TableDestination dest
SET dest.ChampData = 'Ma Valeur de Test'
WHERE ChampID IN (SELECT TOP 10 ChampID FROM TableDestination WHERE ChampData='' ORDER BY ChampID)
END
-------------------------------------------------------------------------
Conclusion :
Je vous laisse adapter la solution à votre besoin
Pour information, je me suis basé sur ce modèle pour exécuter un script d'alimentation qui à duré plus de 10 Jours.
Bon coding
Romelard Fabrice [MVP]
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.