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 :

Trigger Incrementation apres insertion


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 28
    Points
    28
    Par défaut Trigger Incrementation apres insertion
    Bonjour à tous,

    je débute dans les Triggers, je viens de lire qlq tutos sur les triggers et je me suis mis à écrire un trigger simple à mon avis mais il fonctionne pas ......je voulais donc incrémenter ma clé étrangère (normalement l'incrémentation se fera automatiquement car c'est une clé primaire dans ma table principale ???) à chaque nouvelle insertion
    Voici donc mon code apparemment la syntaxe n'est pas juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TRIGGER INC_REFERENCE ON CONTROLES AFTER INSERT
     
    	BEGIN 
    		reference_id = reference_id+1;
    	END
    PS. Je travaille sur MS SQL 2000

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    reference_id = reference_id+1;
    en sql le "=" ne suffit pas;
    il faut faire un set (si pas de table) ou un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set reference_id = reference_id+1;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select reference_id = reference_id+1 from matable;
    c'est la premiere chose.
    la deuxieme:
    un trigger fonctionne avec deux tables : INSERTED et DELETED
    inserted contient les nouvelles données, deleted celles présentes avant la modif
    donc dans ton code il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER INC_REFERENCE ON CONTROLES AFTER INSERT
     	BEGIN 
    		select reference_id = reference_id+1 from inserted;
    	END
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER INC_REFERENCE ON CONTROLES AFTER INSERT
     	BEGIN 
    		update CONTROLES  set reference_id = reference_id+1 where CONTROLES.reference_id=inserted.reference_id ;
    	END

Discussions similaires

  1. Trigger : update apres un insert
    Par xav_carene dans le forum SQL
    Réponses: 4
    Dernier message: 18/08/2010, 17h48
  2. Créer un trigger apres insertion
    Par Msysteme dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/05/2009, 14h10
  3. Récupérer la valeur de l'auto increment apres insertion en base
    Par altiman dans le forum Persistance des données
    Réponses: 5
    Dernier message: 02/06/2008, 11h47
  4. Trigger auto_increment apres chaque insertion
    Par agur29 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 29/10/2007, 16h47
  5. Trigger Incrementation apres insertion
    Par agur29 dans le forum Développement
    Réponses: 4
    Dernier message: 02/08/2007, 18h15

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