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 :

L'identificateur en plusieurs parties XX ne peut pas être lié.


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut L'identificateur en plusieurs parties XX ne peut pas être lié.
    Bonjour

    Cela fait désormais 6 heures que je tente de résoudre une conversion de requête access vers SQL Server, en vain.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE TRAVAIL INNER JOIN PARC ON (TRAVAIL.[champ1] = PARC.champ2) AND (TRAVAIL.[champ3] = PARC.champ4) AND (TRAVAIL.CHAMP5 = PARC.champ5) SET PARC.champ6 = Yes
    WHERE (((PARC.champ6)=No));
    Voici en quoi j'ai tenté de la convertir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE TRAVAIL
    SET PARC.champ6 = 'Yes'
    FROM TRAVAIL
    INNER JOIN PARC ON (TRAVAIL.champ1 = PARC.champ2)
    	AND (TRAVAIL.[champ3] = PARC.champ4)
    	AND (TRAVAIL.champ5 = PARC.champ5)
     
    WHERE (((PARC.champ6) = 'No'));
    J'obtiens cette erreur là:

    L'identificateur en plusieurs parties "PARC.champ6" ne peut pas être lié.

    Et je n'arrive pas à savoir d'où cela vient, sachant que j'ai parcouru tout Google et cela devait fonctionner...

    Merci énormément de votre aide!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Tu lances un UPDATE sur la table TRAVAIL, et l'affectation se fait sur la table PARC.
    Je fais rarement des jointures sur un UPDATE, mais je pense fort qu'ici il faut mettre la table PARC dans l'UPDATE, vu que c'est celle-ci qui doit être mise à jour.

    Tatayo.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Cette requête s'écrira plus simplement avec EXISTS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE  parc    AS prc
    SET     champ6 = 'Yes'
    WHERE   EXISTS
            (   SELECT  0
                FROM    travail AS  trv
                WHERE   trv.champ1 = prc.champ2
                    AND trv.champ3 = prc.champ4
                    AND trv.champ5 = prc.champ5
            )
        AND champ6 = 'No'
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE T
    SET    PARC.champ6 = 'Yes'
    FROM   TRAVAIL AS T
           INNER JOIN PARC AS P ON T.champ1 = P.champ2
    	                            AND T.[champ3] = P.champ4
    	                            AND T.champ5 = P.champ5
     
    WHERE PARC.champ6 = 'No';

    Pourquoi toutes ces parenthèses ? Vous les avez eu en solde et voulez vous en débarrasser ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse

    Haha oui effectivement, je pense les mettre à recycler

    Le code que vous m'avez donné retourne la même erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*4104, Niveau*16, État*1, Ligne*8
    L'identificateur en plusieurs parties "PARC.champ6" ne peut pas être lié.
    Merci grandement de votre aide

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Citation Envoyé par Aymene69 Voir le message
    Le code que vous m'avez donné retourne la même erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*4104, Niveau*16, État*1, Ligne*8
    L'identificateur en plusieurs parties "PARC.champ6" ne peut pas être lié.
    Peut-être en corrigeant comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE P
    SET    P.champ6 = 'Yes'
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. [2008R2] L'identificateur en plusieurs parties ne peut être lié (#4104)
    Par maximeozenne dans le forum Développement
    Réponses: 6
    Dernier message: 03/01/2018, 15h11
  2. Identificateur ne peut pas être lié
    Par Cryos dans le forum Développement
    Réponses: 9
    Dernier message: 11/03/2011, 16h42
  3. Réponses: 1
    Dernier message: 24/10/2007, 08h24
  4. Liens URL : La mémoire ne peut pas être "read" ?
    Par fredfred dans le forum Windows XP
    Réponses: 4
    Dernier message: 28/07/2006, 08h48
  5. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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