begin process at 2010 03 18 03:04:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT

SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :update, lot, boucle, top Niveau :Initié Date de création :05/03/2007 Vu :12 735

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

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

  • -------------------------------------------------------------------------
  • -- 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
  • -------------------------------------------------------------------------
-------------------------------------------------------------------------
-- 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]


 Sources du même auteur

SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON...
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN...
SQL SERVER - OBTENIR LA POSITION DU PREMIER CHIFFRE D'UNE CH...
SQL SERVER - MODIFIER LA CROISSANCE DES FICHIERS DE BASE DE ...

 Sources de la même categorie

Source avec Zip Source avec une capture SQL SERVER - GENERATION AUTOMATIQUE D'UNE RETRO-DOCUMENTATIO... par FENETRES
[SQL SERVEUR] VÉRIFIER L'ESPACE OCCUPÉ DANS UNE BASE DE DONN... par Hyperion
TROUVER LES PROCHAINS ANNIVERSAIRES par zefo
REQUÊTE SQL POUR DÉTERMINER L'ESPACE OCCUPÉ DANS LES TABLESP... par sgoriaud
SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE par fabrice69

 Sources en rapport avec celle ci

SQL SERVER - SELECTION DES PREMIERS 10 POURCENT D'UNE TABLE par fabrice69
SQL SERVER - LES DIFFÉRENTES MÉTHODES POUR FAIRE UN LIMIT SO... par fabrice69
MISE À JOUR par NetJoao
FORCER UNE MISE À JOUR AVEC UNE REQUÊTE DE REGROUPEMENT POUR... par Patrice99
SQL SERVER - PROCÉDURE STOCKÉE METTANT À JOUR TOUTES LES STA... par fabrice69

Commentaires et avis

Commentaire de pifou25 le 09/05/2007 12:20:55

bravo, très pratique, ça ne remplace pas avantageusement la fonction Format() du VB mais au moins ça dépanne ^^

Commentaire de pifou25 le 09/05/2007 12:24:08

(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...)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

exercice [ par roupis ] je suis un jeune débutant et j'ai besoin d'aide sur un exercicemerci de m'aider"un distributeur de produits pharmaceutiques homéopathiques souhaite in faire un boucle pour en sql ? [ par raziel62 ] salut, est il possible de faire des boucles POUR en sql ??? J'ai chercher sur internet mais j'ai rien trouver, vous connaissez pas des sites d'aide en Lot dts SQL server dans un excel [ par karn ] Bonjour, j'ai creer un lot qui exporte une vue dans un fichier excel, ca marche bien, le seul probleme est que lorsque que je le relance au lieu update dans un trigger depuis une autre base [ par fabyrob ] Bojour à tous,Je voudrai dans un trigger update d'une base X faire un update dans une base Y. J'ai récupéré les infos que je veux Trigger SQL server [ par Lolo36 ] Bonjour,Je souhaite créer un trigger qui incrémente un compteur.Voici l'algo que je souhaite mettre en place :A la création de la ligne requête sql (update avec deux bases) [ par jee0404 ]   Bonjour,            Je veux pouvoir updater le prix de mes enregistrements de la base de UPDATE avec plusieurs tables [ par magic_Nono ] BonjourJe faisais un prog VC6 avec accès à une BD mySql (une autre partie du soft est basé sur LAMP)lors de mes tests, j'utilisais easy REQUETE UPDATE [ par nawal59 ] Salut,voici mon problème:je fais un formulaire de saisie qui renvoie les données dans une table "table1" et dans ce formulaire, j'ai fais un requête UPDATE [ par richch ] Salut,Voici une requête qui ne fonctionne pas, j'ai pas traové l'erreur, veuillez m'aider.SQL = "UPDATE admin SET password='" & nouveauM Problème update avec des decimales [ par Kahoola ] Bonjour, j'ai un problème lors d'une modification d'une table  avec des champs de type Décimal. Voilà ma requête : Dim mon


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales