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 :

créer TRIGGER sur 1 table avec liaison sur 2 autre table


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut créer TRIGGER sur 1 table avec liaison sur 2 autre table
    Je suis débutant dans l'étude et la manipulation de SQL SERVER, j'ai déjà effectué plusieurs manipulations de requétes, et maintenant je me lance dans la création de TRIGGER, mais je n'arrive pas a utiliser les TRIGGER avec des fonction IF ..... INSERT.
    J'ai regardé et essayé de comprendre par rapport au cour présent sur le site mais j'ai des difficultés à réussir les TRIGGER.
    J'avais réussi a faire apparaitre un message selon l'une ou l'autre condition, mais sur ce TRIGGER là je bloque.

    J'essai de faire un TRIGGER qui en fonction de la remise MAX autorisé pour un article et celle donné par le vendeur, m'applique ou non la remise faite par le vendeur si celle ci n'est pas suppérieur a celle autorisé.

    Dans mon code, je crées un TRIGGER sur l'insertion dans la table CmdRem (commande Remise), ensuite je compare le 2 remise présente dans les 2 tables Article et Panier. Si la remise dans Article et inférieur a celle dans Panier il y a un message d'erreur, fin de la première condition. Si la remise dans Article et supérieur a celle dans Panier alors il me fais l'insertion dans la table commande.

    voici mon code:

    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
     
    CREATE TRIGGER RemCmd ON CmdRem
    FOR INSERT 
    AS
    BEGIN
    	/* Comparaison des 2 remises */
                    /* Si superieur message erreur */
    	IF Panier.remise > Article.remise 
    		BEGIN 
    		set @errno  =  30002
    		set @errmsg =  'La remise ne êut etre effectuée.'
    		GOTO LBL_ERROR
    	END
                    /* Si inferieur appliquer l'insertion */
    	IF Panier.remise < Article.remise 
    		BEGIN
    		INSERT CmdRem
    		SELECT (CmdRem.N°cmd+1),((Article.Prix_public*Panier.remise)/100),Panier.remise
    		FROM Panier,Article
    		WHERE Panier.Login="mdp"
    	END
    RETURN
    /* Gestion des erreurs */
    LBL_ERROR:
    	RAISERROR @errno @errmsg
    	ROLLBACK TRANSACTION
    END
    Par contre , dès que je fais appliqué pour créer le TRIGGER dans SQL SERVER il me fait une erreur sur le mot BEGIN ("Syntaxes incorrecte vers le mot clé 'BEGIN').

    S'il y a quelqu'un qui peut m'aider a comprendre comment faire un TRIGGER de ce style ou me dire s'il y a un endroit sur le site (que j'ai peut etre pas vu) ou je pourrai mieux comprendre la création des TRIGGER je l'en remercie d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 90
    Points
    90
    Par défaut
    Il faut d'abord que tu travailles avec les tables inserted et deleted pour faire la jointure avec les remises qui sont insérées et les articles et les paniers.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Merci pour ton aide, maintenant sa marche. Par contre , ou pourrais-je trouver des informations sur la syntaxe RAISERROR. Je cherche , soit par RAISERROR soit un autre , a afficher un message permettant la saisie d'une valeur. Mais apparement RAISERROR ne le permet pas. merci d'avance de votre aide.

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

Discussions similaires

  1. [ZF 1.11] Validateur comparaison input d'une table avec valeur d'une autre table
    Par yoann92 dans le forum Zend_Form
    Réponses: 17
    Dernier message: 03/09/2012, 13h35
  2. Réponses: 2
    Dernier message: 22/09/2008, 18h21
  3. Remplir une table avec les données d'autres tables
    Par Beltegeuse dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/04/2008, 12h00
  4. creation table avec lignes d'une autre table sous Sql Server
    Par pops4 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/05/2007, 13h59
  5. Réponses: 14
    Dernier message: 05/09/2006, 17h01

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