IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Effectuer une boucle (foreach) dans une procédure stockée ?!


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 50
    Points
    50
    Par défaut Effectuer une boucle (foreach) dans une procédure stockée ?!
    Bonjour,

    J'ai une TABLE_MEMBRE, TABLE_SELECTION et TABLE_RESULTAT. Ma procédure stockée est simple :
    1. Dans la table résultat, je mets l'id de la bonne SELECTION
    2. Je récupère tous les membres qui ont choisi la bonne SELECTION
    3. Je fais ma boucle (pour chaque utilisateur avec la bonne selection ...
    4. ... je fais un UPDATE de TABLE_MEMBER pour lui changer une colonne


    Vous auriez un exemple générique pour ce style de boucles ?!
    Merci à tous!

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,
    Il te faut un curseur (mot clef cursor).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    declare mon_curs cursor   for
    SELECT... FROM... WHERE... --(là, tu mets une requête qui ramène un ou plusieurs champ)
    open mon_curs
    fetch next from mon_curs into @champ1, @champ2 --..., il faut auparavant déclarer les variables @champ
     
    while @@fetch_status = 0
    	begin
    	  exec('update... set chp1 = ' + @champ1 + ' where chp2 = ' + @champ2) --exemple de mise à jour à partir de la ligne en cours du curseur
    	  fetch next from mon_curs into @champ1, @champ2
            end
    close mon_curs
    deallocate mon_curs
    A adapter à ton cas...
    Regarde la doc de SQL Server pour d'autres exemples.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. [PDO] Une boucle while dans une boucle while
    Par subran dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/02/2015, 19h32
  2. Element suivant dans une boucle "Foreach"
    Par ganguill dans le forum Langage
    Réponses: 16
    Dernier message: 20/05/2010, 09h05
  3. [JSTL] inserer une boucle foreach dans une methode javascript
    Par dearraed dans le forum Taglibs
    Réponses: 1
    Dernier message: 16/04/2010, 10h10
  4. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  5. Réponses: 0
    Dernier message: 09/06/2009, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo