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 :

". could not be bound". Pb sur un trigger


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut ". could not be bound". Pb sur un trigger
    Bonjour,

    Sur le trigger after update, je veux mettre à jour des données. J'ai une table client. Sur chaque modif d'un client, je veux mettre à jour le partenaire correspondant ( c'est à dire celui qui a le bon numéro client )

    Voici mon code qui me renvoie l'erreur suivante
    The multi-part identifier "inserted.numclient" could not be bound.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ALTER TRIGGER [dbo].[MAJ_CAB] 
       ON  [dbo].[CLIENTS]
       AFTER UPDATE
    AS 
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
        -- Insert statements for trigger here
    update dbo.cab set société=inserted.clientnom where numclient=inserted.numclient;
     
    END
    Merci de votre aide svp.

  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 : 42
    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
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Il vous faut prendre l'habitude de mettre vos jointures dans la clause FROM plutôt que dans la clause WHERE.
    Outre le fait que vous y gagnerez en lisibilité (vous séparer les opérateurs de jointure des prédicats de filtrage), il y a certains cas ou ce sera plus performant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ALTER TRIGGER [dbo].[MAJ_CAB] 
       ON  [dbo].[CLIENTS]
    AFTER UPDATE
    AS 
    BEGIN
    	SET NOCOUNT ON
     
    	UPDATE dbo.cab
    	SET société = I.clientnom
    	FROM dbo.cab AS C
    	JOIN INSERTED AS I ON C.numClient= I.numClient
    END
    @++

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Merci beaucoup pour votre réponse, ca fonctionne

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

Discussions similaires

  1. The multi-part identifier "congé.cin" could not be bound.
    Par Gabox dans le forum Développement
    Réponses: 1
    Dernier message: 18/05/2012, 03h06
  2. Réponses: 3
    Dernier message: 01/12/2009, 11h35
  3. Réponses: 3
    Dernier message: 01/08/2007, 09h26

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