Sql server - update d'une table en boucle par lot

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 234 fois - Téléchargée 19 fois

Contenu du snippet

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]

A voir également

Ajouter un commentaire

Commentaires

pifou25
Messages postés
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014
-
bravo, très pratique, ça ne remplace pas avantageusement la fonction Format() du VB mais au moins ça dépanne ^^
pifou25
Messages postés
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014
-
(en fait mon commentaire n'était pas du tout pour cette source mais pour ton autre la qui imbrique 3 CAST pour formater un nombre) (tu es prolixe en sources ici...)
Au top !

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.