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 :

probleme de trigger en inserssion


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut probleme de trigger en inserssion
    bonjour

    j'ai la table client
    client(mat,nom,prn,datn,ville.......)
    je veux saisie 3 client de la ville 'A' et les autre ville 'B' et 'C' sont pas conditionné,pour ce la j'ai crée un trigger le voila:

    create trigger ver_inserer on client instead of insert
    as begin

    declare @villeainteger

    set @villea=(select count(*) from inserted where ville='A')

    if(@villea<3)
    begin
    insert into client select * from inserted
    end
    else
    begin
    print('impossible inserer')
    end
    end

    ce trigger est execute tré bien sans erreur mais il accepte + de 3 client de la ville 'A' sa veux dir il ne vérifier pas la condition et moi je veux quelle dépasse pas 3 client de la ville 'A'

    je vous remerci d'avance

  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 te manque un rollback sur la transaction pour l'annuler.
    Peux-tu essayer avec ce code et nous dire ce qu'il en est ?

    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
     
    CREATE TRIGGER VER_INSERER ON CLIENT
    	INSTEAD OF INSERT
    AS
    BEGIN
    	DECLARE @VILLEA INT;
     
    	SELECT @VILLEA = COUNT(*) FROM INSERTED WHERE VILLE = 'A';
     
    	IF(@VILLEA < 3)
    		INSERT INTO CLIENT
    		SELECT * FROM INSERTED;
    	ELSE
    	BEGIN
    		ROLLBACK TRANSACTION;
    		PRINT('IMPOSSIBLE INSERER');
    	END;
    END;

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    bonjour

    la meme chose elle accepte + 3 client de la ville 'A'

    je vous remerci

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