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 :

Probleme de Trigger


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Probleme de Trigger
    Bonjour,
    je veut créer un trigger sur la table facture:
    En fait, je veut lorsque j'insere les données dans cette table, le champs codeFacture sera rempli automatiquement.
    Sachant que codeFacture est une chaine de caractère.

    Exemple de codeFacture:
    FOO1
    F002
    F003
    ............
    Merci de m'aider

  2. #2
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    C'est bien... mais si t'en disais un peu?

    Comme ce que tu as déjà fait, quel sgbd, ...

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Probleme de trigger
    Bonjour
    merci pour votre interet a mon probleme.
    Je travaille sur SqlServer 2005.
    Voilà le code que j' ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ALTER TRIGGER TrigInsertion
    ON dbo.Facture
     
    after insert
    AS
    Declare @i int;
    set @i = 1;
    update Facture set codeFacture ='C'+(@i +1);
     SET @i = @i +1;
    Mais ca marche pas!

  4. #4
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    Je suppose que ça te met toujours le meme? (si ça ne fais rien du tout ça te mettras quand même toujours la même chose...)


    Personellement je créerais plutôt un trigger "INSTEAD OF INSERT" qui remplacera carrément l'insertion... au lieu de faire un "After Insert"

    Dans ce trigger, je ferais l'instertion et je récupèrerais le dernier identifiant (en espérant qu'il y en ai un) avec un SELECT @@IDENTITY

    Ensuite je ferais l'update sur base de l'id et je me servirais aussi de l'id pour créer le code... ne pas oublier un STR() comme l'id est un type entier...

    Désolé de ne pas pouvoir montrer mais je suis actuellement au boulot et pas trop le temps ^^

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Probleme de trigger
    J'ai pas compris, est ce que vous me pouvez expliquer encore lorsque vous avez du temps.

  6. #6
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    Comme un exemple vaut mieux qu'un long discours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TRIGGER TrigInsertion ON dbo.Facture
    INSTEAD OF INSERT
    AS
    BEGIN
       DECLARE @i INT,
     
       INSERT INTO dbo.Facture(col1, col2, ...)
           SELECT col1, col2, ... FROM Inserted
     
       SELECT @i = @@IDENTITY
     
       UPDATE dbo.Facture SET codeFacture = 'C' + STR(@i)
    END
    ce n'est peut etre pas parfait car fait a la va vite mais j'espère que tu as compris le petit exmple

Discussions similaires

  1. probleme de trigger
    Par [ME]yeye dans le forum Oracle
    Réponses: 6
    Dernier message: 15/06/2006, 15h33
  2. Problème comportement trigger
    Par ameno_123 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/05/2006, 00h20
  3. Probleme de trigger
    Par Lomme dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/03/2006, 10h39
  4. Probleme de trigger
    Par luciemacherie dans le forum Oracle
    Réponses: 4
    Dernier message: 16/01/2006, 17h21
  5. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53

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