Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/02/2013, 12h20   #1
PRAMI
Invité de passage
 
Homme PASCAL RAMI
Directeur des systèmes d'information
Inscription : avril 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme PASCAL RAMI
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Directeur des systèmes d'information
Secteur : Alimentation

Informations forums :
Inscription : avril 2012
Messages : 2
Points : 2
Points : 2
Par défaut UPDATE multiple

Bonjour,

Est-il possible d'effectuer un update multiple comme ci-dessous :

Code :
1
2
3
4
UPDATE F_DOCLIGNE 
SET GTIN = (SELECT CO_CodeBarre FROM F_CONDITION WHERE (AR_Ref = @AR_Ref) AND (LEFT(CO_CodeBarre,1) = @Type_PCB))
SET CB = (SELECT EC_Quantite FROM F_CONDITION WHERE (AR_Ref = @AR_Ref) AND (LEFT(CO_CodeBarre,1) = @Type_PCB))
WHERE F_DOCLIGNE.CbMarq = @cbMarq
Merci d'avance.
PRAMI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2013, 15h58   #2
ok.Idriss
Responsable Modération

 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et auditeur au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 3 794
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 22
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et auditeur au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 3 794
Points : 12 166
Points : 12 166
Bonjour.

Oui mais pas de la façon que vous indiquez :

Code :
1
2
3
4
5
UPDATE maTable
SET colonne1 = 'value1',
colonne2 = 'value2',
-- ...
WHERE -- ...
Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2013, 16h47   #3
PRAMI
Invité de passage
 
Homme PASCAL RAMI
Directeur des systèmes d'information
Inscription : avril 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme PASCAL RAMI
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Directeur des systèmes d'information
Secteur : Alimentation

Informations forums :
Inscription : avril 2012
Messages : 2
Points : 2
Points : 2
Merci pour votre aide.
PRAMI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2013, 18h05   #4
Waldar
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 6 278
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 35
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2008
Messages : 6 278
Points : 13 566
Points : 13 566
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Vous devriez aussi pouvoir l'écrire comme ceci :
Code :
1
2
3
4
5
6
UPDATE F_DOCLIGNE 
   SET (GTIN, CB) = (SELECT CO_CodeBarre, EC_Quantite
                       FROM F_CONDITION
                      WHERE AR_Ref = @AR_Ref
                        AND LEFT(CO_CodeBarre,1) = @Type_PCB))
 WHERE F_DOCLIGNE.CbMarq = @cbMarq;
Les @ me font penser à SQL-Server.
N'oubliez pas de préciser le schéma (dbo par défaut) devant le nom de vos tables.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2013, 10h27   #5
aieeeuuuuu
Expert Confirmé
 
Inscription : janvier 2010
Messages : 1 690
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 690
Points : 2 664
Points : 2 664
Citation:
Envoyé par Waldar Voir le message
Les @ me font penser à SQL-Server.
Dans ce cas :
Code :
1
2
3
4
5
6
7
8
 
UPDATE F_DOCLIGNE 
	SET GTIN = CO_CodeBarre 
	,CB = EC_Quantite
FROM	F_DOCLIGNE
LEFT JOIN F_CONDITION 
	ON		AR_Ref = @AR_Ref
	AND		LEFT(CO_CodeBarre,1) = @Type_PCB
Si vous ne voulez pas mettre à NULL les colonnes GTIN et CB pour les lignes de F_DOCLIGNE n'ayant pas de correspondance dans F_CONDITION, il faudra remplacer la jointure externe pas une jointure interne
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h02.


 
 
 
 
Partenaires

Hébergement Web