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

Adaptive Server Enterprise Sybase Discussion :

[T-SQL]procédure stockée - boucle


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut [T-SQL]procédure stockée - boucle
    Bonjour,
    j'aimerais créer un traitement en boucle dans une procédure stockée et je ne sais pas comment faire, apparemment on ne peut pas faire FOR,dans SYBASE

    quelqu'un peut m'aider?

    merci beaucoup.

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par manaboko Voir le message
    Bonjour,
    apparemment on ne peut pas faire FOR,dans SYBASE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    WHILE condition
    BEGIN
    
    END

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    WHILE oui,
    mais la condition quoi?
    par exemple, tant que ce n'est pas la fin d'une liste, mettre à jour une table

    c'est-à-dire,
    je fais tant que ce n'est pas la fin de select table1_id from table1

    update table2_id set table2_num = table1_id where ....

    est-ce que tu peux me donner un exemple de code?

    merci

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Pour travailler sur des jeux d'enregistrement, il faut parfois passer par des curseurs...

    donc...

    Citation Envoyé par manaboko Voir le message
    est-ce que tu peux me donner un exemple de code?
    ça dépend. Est-ce que tu peux expliquer précisemment ce que tu veux faire ?

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    je veux mettre à jour le contenu d'une table à partir des données réçues d'une autre table, et il y a plusieurs enregsitrements issues de la première table,

    j'utilise ASE, donc il y a des syntaxes qui ne marcheront pas sous ASE d'après ce que je sache

  6. #6
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    oui bon ok...

    Il va falloir donner vraiment plus de détails sur les tables en question et l'opération exacte que tu souhaites faire...

    Selon le cas, ça peut se faire avec une simple requête; sinon, il faudra peut être passer par un curseur.
    Sans les détails, c'est difficile de t'orienter.

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    par exemple
    je fais
    select table1_id , table1_nom from table1

    donc j'ai plusieurs enregistrements:
    ensuite, à chaque table1_id, je veux mettre à jour une table2

    update table2_id set table2_nom = valeur where table2_id = table1_id

    comment le faire?

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    ON peut faire qqch comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    update table2
         set valeur = t1.valeur
       from table2 t2
            , table1 t1
     where t1.id = t2.id
        and ... autres conditions ...
    Cette forme de l'UPDATE est spécifique à Transact-SQL, l'alternative est d'utiliser une sous-requête corrélée, qqch dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    update table2
         set valeur = (select valeur from table1 t1 where t1.id = table2.id ...)
     where ... conditions...
    Michael

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    j'ai fais insert into ..select

    j'obtiens avec ce requete ce que je voulais


    en tout cas,

    merci à tous

  10. #10
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par manaboko Voir le message
    j'ai fais insert into ..select
    insert ? tu parlais d'update...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/11/2009, 16h22
  2. Réponses: 21
    Dernier message: 16/03/2008, 13h17
  3. [PL/sql] Procédure Stockée.
    Par jerzy59 dans le forum Oracle
    Réponses: 1
    Dernier message: 28/11/2006, 15h18
  4. SQL : Procédure stockée - connaitre l'état de la procédure ?
    Par caviar dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/03/2006, 14h13
  5. [Pervasive SQL ] procédure stockée
    Par magellan dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 25/10/2002, 13h17

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