Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3408 connectés 

 


Dernière réponse
Sujet : update imbriqué?? est ce possible
Kahyman Mon dieu quel bidouillage...
 
En faisant ainsi si tu effaces une entree dans ta table A tu n'as aucun moyen de savoir si cette entree est utilisee ou non dans B ou toute autre table, impossible de faire un cascade ni rien... donc verifs a la main ou par triggers donc lenteur et integrite zero.
 
Tu devrais reprendre ta modelisation en utilisant des foreign keys, puis ensuite transferer les donnees d'une BDD a l'autre. J'espere que SQL Server en est capable, je n'utilise qu'Oracle et franchement je me comprends et me felicite :lol: ...
 
Comme quoi il faut modeliser ses BDD correctement AVANT et pas patcher APRES...  
 
Courrage !
 
;)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Kahyman Mon dieu quel bidouillage...
 
En faisant ainsi si tu effaces une entree dans ta table A tu n'as aucun moyen de savoir si cette entree est utilisee ou non dans B ou toute autre table, impossible de faire un cascade ni rien... donc verifs a la main ou par triggers donc lenteur et integrite zero.
 
Tu devrais reprendre ta modelisation en utilisant des foreign keys, puis ensuite transferer les donnees d'une BDD a l'autre. J'espere que SQL Server en est capable, je n'utilise qu'Oracle et franchement je me comprends et me felicite :lol: ...
 
Comme quoi il faut modeliser ses BDD correctement AVANT et pas patcher APRES...  
 
Courrage !
 
;)
grosmethos MEA COULPA!!]  
 
Heureuement que j'ai t'ai pas envoyé ma base je pense que le FORUM entier t'aurais entendu hurler :bounce:
 
Tout ça pour dire que je viens de trouver ce qui deconnait et bien sûr c'etait moi!!
 
J'avais pas nommé genre dans type_moto, mais id_genre, et du coup il manquait une info!!
 
Je suis lourd, ça fait 30 fois que je le li et j'ai rien vu!! sauf maintenant!!
 
Bon en tout cas MERCI bien, je vais pouvoir coder mon ASP tranquille maintenant....
 
Pour ceux que ça interesse le site en question c'est wwww.labeloccasion.com si vous cherchez une moto, aller voir les quelques photos....
Le menu de recherche notamment sur le modèle devrait être plus clair ( le genre pour ceux qui ont participé au topic :)!!)
 
Les vendeurs pour inserer une moto genre 750 GSXR on saisi plusieurs dénomination pour le même type de machine :
750 GSXR, GSXR 750, GSXR, GSX 750 R etc etc....
donc je vais uniformiser le tout avec un menu déroulant qu'il pourront alimenter eux même....
Bon je devais rendre le  job mardi, j'espère finir ce soir!!
Merci encore une fois
@+
Mara's dad Si tu veux, je peux regarder, mais faut m'envoyer ta base !
grosmethos en faisant le bourrin et en imprtant les tables sur t base access, bien j'ai le meme bleme , il y a donc quelque chose qui m'echappe!!
grosmethos bon quelque chose doit m'echapper!!
car il me semble que les conditions sont les memes donc que la requête devrait marcher aussi bien chez toi que chez moi....
mais non....
putain ça m'ennerve!!
grosmethos ben non j'ai changé le id_genre de text en numeric et sa passe quand même trés bien.....
JE me demande si c'est aps une histoire de redondance comme j'ai plusieurs fois GSXR ou CBR peut etre...
je vais essayer avc un truc unique!!
Mara's dad Cà doit-êtreun PB de type de donnée. Dans mon exemple, tous les champs sont de types texte.
grosmethos je te remercie pour ton lien!! trop cool!!
bon j'ai telechargé et j'ai regardé fait des tests...
alors avec ta base ça marche nickel chrome (c'est assez ennervant d'ailleurs) par contre avec la mienne, marche pô!! il me demande de lui rentrer un numéro type_moto.genre :(
Je vais regarder d'encore plus prés...mais c'est assez strange !
Mara's dad Je ne comprends pas ton PB !
Chez moi, çà marche avec çà :
 
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];  
 
ou çà :
 
UPDATE type_moto INNER JOIN moto ON type_moto.genre = moto.genre SET moto.genre = type_moto.id_genre;
 
Mon test ici : http://www.surleau.com/temp/bd1.mdb
grosmethos soyons fou !!
Moto        |     type_moto
genre       |     id_genre  id_marque   genre  
-----------  |     -----------------------------
GSXR         |     1          12         GSXR
CBR         |      2          24         CBR
VFR         |      3          46         VFR
 
Donc dans la tale Moto champ genre  
 je veux remplacer GSXR par 1
                   CBR  par 2
                   VFR  par 3
Voci exactement mes tables... :)
Mara's dad Yep, je pense aussi que tu t'es trompé dans les champs !
 
Montres nous donc ENFIN la VRAI structure des tables !
 
Avec les bonnes infos (y s'rait temps) on va p't'être pouvoir faire quelque-chose  :lol:
pudaipiai

grosmethos a écrit a écrit :

bon aller je fais le lourd :)
mais ça marche toujours pas!!
voici ma requête (en fait c'est pas des bananes mais des motos..)
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];
Bon j'ai compris la requête (c'est déja ça !)mais quand j'execute ma requête il me demande de lui donner une valeur de type_moto.genre (pour essayer je lui en ai donné une , tout se passe bien sauf qu'il fait rien :( )  




 
il fallait faire :
UPDATE B INNER JOIN A ON B.genre = A.genre SET A.genre = [B].[id_genre];  
et tu as fait
UPDATE B INNER JOIN A ON B.genre = A.genre SET B.genre = [A].[id_genre];  
 
non ?

grosmethos bon aller je fais le lourd :)
mais ça marche toujours pas!!
voici ma requête (en fait c'est pas des bananes mais des motos..)
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];
Bon j'ai compris la requête (c'est déja ça !)mais quand j'execute ma requête il me demande de lui donner une valeur de type_moto.genre (pour essayer je lui en ai donné une , tout se passe bien sauf qu'il fait rien :( )
grosmethos bon ben comme hier je rentre et je test!!
Merci bien :)
Mara's dad Donc on est bien d'accord : RIEN A VOIR AVEC SQL SERVER !
 
Version access (pour les tables avec cerise, banane et avocats ! ):
 
UPDATE B INNER JOIN A ON B.genre = A.genre SET A.genre = [B].[id_genre];
grosmethos ou lala on s'enerve pas!!
Oui j'ai SQL Server mais je bosse avec Access et quand tout sera fini cela sera transferé sur SQL server...
Mais cette requete je ne vais pas m'en servir dans mon prog, c'est juste pour deplacer des données.....
 
J'ai bien été voir le lien sur le MSDN que tu m'as donné, mais j'ai pas compris grand chose...
 
Quand aux messages d'erreur le From avec un update n'est pas accepeter!!
Mara's dad La requête que je t'ai donné fonctionne pour SQL server.
 
C'est ce que tu as écrit il me semble !
 
Pour la syntaxe, je t'ai donné le liens vers la doc MSDN.
 
Alors, c'est quoi le problème ?
Si c'est que çà marche pas sous Access, falait pas parler de SQL server !
 
Faudrait savoir de quoi on parle. Si tu as des messages d'erreurs, donne les...
grosmethos peut etre devrais je refourmuler ma requête :
J'ai une table A qui contient un champ genre avec du texte
j'ai une table B  qui contient aussi un champ genre avec la même chose que le genre dans A.
Par contre ma table A contient un id_genre, je voudrais donc transferer cette id_genre de B dans la table A à la place de de genre.
Mais bien sûr cet échange ne doit se faire que lorsque A.genre=B.genre....
 
table A     |     table B
 genre       |     id_genre    genre  
-----------  |     ------------------
banane       |      1          banane
avocat       |      2          avocat
cerise       |      3          cerise
 
Donc dans A je dois avoir apres modif :
table A
 genre
--------
 1
 2
 3
C'est surement possible avec du SQL non???  :(
ps cela ne gene pas d'avoir des chiffres dans un champ texte à la fin...
grosmethos bon ok pour les alias je savais pô!!
Par contre j'ai essayé la requete precedente mais ça marche pas!!
D'ailleurs je suis surpris de voir un FROM avec un update!!!
 
Fin bref avant de passer sous sql server 7 je bosse sous access...
J'ai voulu tenté une procedure stockée mais à priori cela ne se fait pas avec Access ils appellent ça plutôt des macros ...comme je connais pas je laisse tomber...
Quoi qu'il en soit j'ai bien  une solution c'est de faire une petite fonction ASP qui me fasse un update...
Mais j'aurais aimé le faire avec plus de style :)
chapi Sous sql server le mot clé  
'as' n'est pas obligatoire, c'est donc bien un alias.
 
Pareil quand tu fais une jointure, tu mets JOIN et le INNER est sous-entendu...
grosmethos je comprend pas tout sur la requete de Mara's dad....
notament sur le b1, c'est quoi un alias??? ne faut il pas les definir avec le mot clés AS???
bref je vais considerer que c'est un alias...et vais essayer comme ça............
putain je suis pas couché encore.....!! :)
grosmethos bon je rentre chez moi et j'essaye
merci!!
Mara's dad UPDATE B SET B.genre = A.z FROM B b1, A WHERE b1.genre=A.GENRE  ;)  
 
Voir : http://msdn.microsoft.com/library/ [...] z_82n9.asp
irulan Ca existe WHERE EXISTS sous SQL Server ? Parce que sous Oracle, j'essaierais avec ça mais ce n'est jamais évident les update de ce genre...
 
A mon avis, ce n'est pas gagné en une requête SQL simple, il faudra surement passer par une procédure...
grosmethos up up up!! :bounce:
grosmethos c'est sql server!!
Mara's dad Si c'est en MySql, il doit y'avoir moyen de le faire avec un REPLACE : http://www.mysql.com/doc/R/E/REPLACE.html
grosmethos Salut
 bon je voudrais mettre à jour une table, en fonction de données dans une autre table...
Je m'explique dans la table A j'ai un champ genre
Dans le table B j'ai aussi un champ genre
 
J'aimerais remplir le champ genre de B par un champ Z de A en fonction que A.genre=B.genre si cette condition est verifié je fais le remplacement!!
Est ce possible avec une requête SQL???

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)