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

Développement SQL Server Discussion :

The multi-part identifier "congé.cin" could not be bound.


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Par défaut The multi-part identifier "congé.cin" could not be bound.
    Bonjour tout le monde,

    Quand j'exécute ce trigger il m'affiche ce message là :

    The multi-part identifier "congé.cin" could not be bound.
    et je me suis bloqué.

    Voici le code du trigger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    create trigger Controle_dure
    on congé after insert
    as
    declare @cin varchar(20)=(select cin from congé)
    declare @datee date =(select [Date demande] from Congé )
     
    update Jour_Conge
    set Nbre_jour = Nbre_jour-TextDuree.text
    where Jour_Conge.cin=congé.cin
     
    if Nbre_jour.text=0
    print 'Congé invalide'
     
    declare @a int=(select datediff(yy,date_demande,getdate()) from congé)
     
    if @a> 0
     
    update Jour_Conge
    set Nbre_jour = (select sum (Nbre_jour)+22)
    where Jour_Conge.cin=congé.cin
     
    if @a> 1
     
    update Jour_Conge
    set Nbre_jour = 22
    where Jour_Conge.cin=congé.cin
     
    insert into Jour_Conge values (@cin,@datee)

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    C'est normal puisque vous ne référencez jamais la table congé après la clause FROM de vos UPDATE.

    Ensuite mette des accents dans les noms de table, ou es espaces dans les noms de colonne vous conduira forcément à des problèmes que vous aurez beaucoup de mal à diagnostiquer.

    D'autre part le bout de code suivante est incompréhensible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF Nbre_jour.text = 0
    print 'Congé invalide'
    Enfin, les affectations des variables @cin, @datee et @a sont fausses puisque vous n'avez aucun filtre sur la requête SELECT.
    Donc c'est la première valeur trouvée dans la table qui affecte la variable.

    Je pense donc que votre base de données est mal modélisée, et que vous êtes donc obligé d'écrire un code imprécis et tortueux, qui sera contre-performant en plus d'être difficilement maintenable.

    @++

Discussions similaires

  1. [2012] the multi part identifier could not be bound
    Par Axel_Rose dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/06/2013, 17h44
  2. Réponses: 3
    Dernier message: 01/12/2009, 11h35
  3. update+The multi-part identifier
    Par jawadi95 dans le forum Développement
    Réponses: 2
    Dernier message: 02/06/2008, 10h31

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