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

Langage SQL Discussion :

UPDATE multi-tables sous SQL Server


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [Résolu] UPDATE multi-tables sous SQL Server
    Bonjour,

    j'ai une UPDATE à intégrer dans une DTS sous SQL Server mais je bloque sur la synthaxe exacte.

    j'ai essayé ce code et plusieurs variantes sans succès.
    Le but est d'aller récupérer la valeur des champs "Gamme" et "Produits" dans les 2 tables annexes, pour remplir un champ de la table principale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE Maintenance AS A  INNER JOIN [T_Gamme] ON [T_Gamme].[code_complet] = [Maintenance].[Gamme]
    AS A INNER JOIN [T_Produit] ON [T_Produit].[code_complet] = [Maintenance].[Type_prod]
    SET              Description = [T_Gamme].[Gamme] + [T_Produit].[Produit]
    Voici le schéma des tables

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    UPDATE Maintenance AS A INNER JOIN [T_Gamme] ON [T_Gamme].[code_complet] = [Maintenance].[Gamme]
    AS A INNER JOIN [T_Produit] ON [T_Produit].[code_complet] = [Maintenance].[Type_prod]
    SET Description = [T_Gamme].[Gamme] + [T_Produit].[Produit]
    Bon ben déjà, y'a AU MOINS 2 grausses fotes !
    1/ tu mets 2 fois AS A (la deuxième étant vraiment placée n'importe où)
    2/ tu modifies un champ que je n'ai pas trouvé dans tes tables...

    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Maintenance 
        INNER JOIN T_Gamme ON T_Gamme.code_complet = Maintenance.Gamme 
        INNER JOIN T_Produit ON T_Produit.code_complet = Maintenance.Type_prod
    SET Maintenance.Designation= T_Gamme.Gamme + ' ' + T_Produit.Produit

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    hello,

    pour le champ, c'est parce que la table sur lequel je travaille n'a pas le même nom, mais j'avais un ancien schéma 8)

    en fait j'ai essayé ça entretemps :
    (TEMPO_CONTRATS remplace Maintenance)

    je teste ta soluce, merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE    TEMPO_CONTRATS
    SET              Description = [T_Gamme].[Gamme] 
    + [T_Produit].[Produit]
    FROM         TEMPO_CONTRATS INNER 
    JOIN
                          [T_Produit] ON [T_Produit].[code_complet] 
    = [TEMPO_CONTRATS].[Type_prod] INNER 
    JOIN
                          [T_Gamme] ON [T_Gamme].[code_complet] 
    = [TEMPO_CONTRATS].[Gamme]

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    En essayant ça, j'ai une erreur ADO (synthace incorrecte vers le mot clé INNER)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE TEMPO_CONTRATS 
        INNER JOIN T_Gamme ON T_Gamme.code_complet = TEMPO_CONTRATS.Gamme 
        INNER JOIN T_Produit ON T_Produit.code_complet = TEMPO_CONTRATS.Type_prod 
    SET TEMPO_CONTRATS.Description= T_Gamme.Gamme + ' ' + T_Produit.Produit

  5. #5
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut
    Quel SGBD ?

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE TEMPO_CONTRATS 
    SET TEMPO_CONTRATS.Description= T_Gamme.Gamme + ' ' + T_Produit.Produit
    FROM TEMPO_CONTRATS 
        INNER JOIN T_Gamme ON T_Gamme.code_complet = TEMPO_CONTRATS.Gamme 
        INNER JOIN T_Produit ON T_Produit.code_complet = TEMPO_CONTRATS.Type_prod
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    SQL Server

    ça marche !! merci
    c'est donc le FROM qu'il manquait apparemment

    UPDATE TEMPO_CONTRATS
    SET TEMPO_CONTRATS.Description= T_Gamme.Gamme + ' ' + T_Produit.Produit
    FROM TEMPO_CONTRATS
    INNER JOIN T_Gamme ON T_Gamme.code_complet = TEMPO_CONTRATS.Gamme
    INNER JOIN T_Produit ON T_Produit.code_complet = TEMPO_CONTRATS.Type_prod

  7. #7
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut
    Citation Envoyé par Cybernet
    SQL Server

    ça marche !! merci
    c'est donc le FROM qu'il manquait apparemment

    UPDATE TEMPO_CONTRATS
    SET TEMPO_CONTRATS.Description= T_Gamme.Gamme + ' ' + T_Produit.Produit
    FROM TEMPO_CONTRATS
    INNER JOIN T_Gamme ON T_Gamme.code_complet = TEMPO_CONTRATS.Gamme
    INNER JOIN T_Produit ON T_Produit.code_complet = TEMPO_CONTRATS.Type_prod
    Certains SGBD, notamment ceux qui utilisent T-SQL (comme SQL Server et Sybase), n'apprécient pas les jointures dans l'UPDATE.
    C'est pour cela qu'il faut ajouter un FROM
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Et pour SQL oracle,
    vous n'auriez pas la meme chose
    ou une commande similaire ?

    Merci pour les infos

    a+

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    je viens de poster une solution ici :

    http://www.developpez.net/forums/vie...=931516#931516

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

Discussions similaires

  1. transfert de table sous SQL Server
    Par stephyugh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/09/2008, 18h20
  2. Réponses: 2
    Dernier message: 16/06/2008, 23h42
  3. creation table avec lignes d'une autre table sous Sql Server
    Par pops4 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/05/2007, 13h59
  4. tableau dynamique via une table sous sql server
    Par bibi2607 dans le forum ASP
    Réponses: 5
    Dernier message: 21/02/2005, 15h45
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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