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 :

[SQL Server] parcourir une Table avec un FOR


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Par défaut [SQL Server] parcourir une Table avec un FOR
    Je voudrai parcourir le résultat d'un SELECT avec un FOR de façon à faire un UPDATE sur chacune des lignes.
    Mais voila je trouve pas la synthaxe qui va bien...

    alors j'ai pas mal lu mais rien trouvé notamment du coté du FOR BROWSE, mais j'arrive pas à trouver comment écrire ça...
    Y'a peut-être quelq'un de moins nul que moi ?

    J'ai essayé un peu comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    declare @MyLastInserted int
    
    CREATE Table1 (ID1 IDENTITY, X int, Y int NULL)
    CREATE Table 2 (ID2 IDENTITY, Y int, Z int)
    
    
    INSERT INTO Table1
                       ( 
                       SELECT X
                       FROM Table1
                       WHERE (Y=1)
                       )
    SET @MyLastInserted  = SCOPE_IDENTITY()
    
    SELECT Y
    FROM Table2
    WHERE (Z=0)  /* c'est ma Table3 ???? */
    
    FOR ????
                UPDATE Table1
                SET Y = Table3.Y
                WHERE ID1= @MyLastInserted
    Vous comprendrez que ce qui est en rouge me pose un peu un problème...
    j'sais pas comment faire ???

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par défaut
    salut
    • MS SQL Server permet de faire des jointures dans une instructions UPDATE:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
       
        UPDATE Table1
            SET Y = Table3.Y
          FROM Table2 t2
          INNER Table1 t1 
            ON ( ta condition ici ... )
          WHERE ( t2.Z = 0 ) And ( ID1 = @MyLastInserted  )
    • Utiliser un curseur
    • Utiliser une variable table
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
       
      DECLARE @r TABLE( Ligne Int Identity(1,1) PRIMARY KEY, Y Int )
      INSERT @r( Y )
        SELECT Y
          FROM Table2
          WHERE ( Z = 0 )
       
      DECLARE @i Int, @y
      WHILE Exists( SELECT * FROM @r ) BEGIN
        SELECT TOP 1 @i = Ligne, @y = Y FROM @r
        DELETE @r WHERE @Ligne = @i
        tes traitements ici...
      END

  3. #3
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Je déplace dans le forum MSSQL SERVER

    Merci de lire : Postez dans le forum approprié
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  4. #4
    Membre confirmé Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Par défaut
    merci.

    ta solution avec passage par une variable table est exactement la solution qu'il me fallait.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir table sql server depuis une table excel
    Par silifana dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/02/2009, 15h23
  2. Réponses: 3
    Dernier message: 15/10/2008, 09h24
  3. Réponses: 2
    Dernier message: 03/09/2008, 16h42
  4. [SQL Server 2000] - Create table avec une variable
    Par Cape31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/12/2006, 15h08
  5. [Sql Server] Renommer une table
    Par TekP@f dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/07/2005, 10h07

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