Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2007, 16h06   #1
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
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.
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h09   #2
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : février 2004
Messages : 861
Points : 966
Points : 966
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Citation:
Envoyé par manaboko Voir le message
Bonjour,
apparemment on ne peut pas faire FOR,dans SYBASE
Code :
1
2
3
4
5
6

WHILE condition
BEGIN

END
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h15   #3
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
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
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h26   #4
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : février 2004
Messages : 861
Points : 966
Points : 966
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
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 ?
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h52   #5
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
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
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h57   #6
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : février 2004
Messages : 861
Points : 966
Points : 966
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
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.
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 09h11   #7
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
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?
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 11h29   #8
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
ON peut faire qqch comme ceci:
Code :
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 :
1
2
3
4
 
UPDATE table2
     SET valeur = (SELECT valeur FROM table1 t1 WHERE t1.id = table2.id ...)
 WHERE ... conditions...
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 14h28   #9
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
j'ai fais insert into ..select

j'obtiens avec ce requete ce que je voulais


en tout cas,

merci à tous
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 14h36   #10
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : février 2004
Messages : 861
Points : 966
Points : 966
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Citation:
Envoyé par manaboko Voir le message
j'ai fais insert into ..select
insert ? tu parlais d'update...
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h04.


 
 
 
 
Partenaires

Hébergement Web