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 qui ne marche pas sous management studio


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut Trigger qui ne marche pas sous management studio
    Bonjour,

    J'ai créé un trigger sous T-sql qui marche trés bien (En gros : C'est pour empecher de supprimer plus d'une ligne dans une table), mais le trigger n'est pas exécuté si je passe par l'interface graphique de management studio, c'est à dire directement dans ma table.

    J'utilise sql server 2005. Code ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TRIGGER Nosupvente
    ON vente.VENTE
    AFTER DELETE
    AS
    IF @@ROWCOUNT >1
    	BEGIN	
    		PRINT 'Oh !!! 1 Seule ligne peut être supprimée à la fois'
    		ROLLBACK
    	END
    Merci pour votre aide

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,
    Lors de la suppression de lignes depuis SSMS une requete est générée pour chaque ligne supprimé, c'est pourquoi la limitation testé par le déclencheur n'est jamais atteinte. Pour vous en convaincre, le plus simple est de lancer SLQ Server Profiler et de regarder les requêtes qui sont envoyées au moteur.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par ikeabp Voir le message
    Bonjour,

    J'ai créé un trigger sous T-sql qui marche trés bien (En gros : C'est pour empecher de supprimer plus d'une ligne dans une table), mais le trigger n'est pas exécuté si je passe par l'interface graphique de management studio, c'est à dire directement dans ma table.

    J'utilise sql server 2005. Code ci dessous :
    Merci pour votre aide
    A ta place j'éviterai d'utiliser le ROLLBACK dans un trigger, utilise INSTEAD OF

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Citation Envoyé par cmako Voir le message
    A ta place j'éviterai d'utiliser le ROLLBACK dans un trigger, utilise INSTEAD OF
    Le INSTEAD OF est utilisé lorsque il y des vues non ?

    Ce que dit jero44 à l'air de tenir le route, je vais tester

    Merci

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par ikeabp Voir le message
    Le INSTEAD OF est utilisé lorsque il y des vues non ?

    Ce que dit jero44 à l'air de tenir le route, je vais tester

    Merci
    Pas forcément:
    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
    CREATE TRIGGER TR_VENTE_DEL
    ON VENTE
    INSTEAD OF DELETE
    AS
    	IF (SELECT COUNT(1) 
    		FROM DELETED )=1
    	BEGIN 
    		DELETE FROM v
    		FROM VENTE v
    		INNER JOIN DELETED d
    			ON v.VENTE_PK = d.VENTE_PK
    	END ELSE BEGIN
    		RAISERROR('TR_VENTE_DEL: Impossible à supprimer, plus d''une ligne',16,1)
    	END
    GO

  6. #6
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Oui il est possible de définir des déclencheurs INSTEAD OF sur des tables et des vues mais cela ne va pas résoudre le problème dans le cas présent.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par jero44 Voir le message
    Oui il est possible de définir des déclencheurs INSTEAD OF sur des tables et des vues mais cela ne va pas résoudre le problème dans le cas présent.
    Pourquoi? Je n'utilise QUE management studio. Essaye.

Discussions similaires

  1. Fonction qui ne marche pas sous FireFox
    Par Foudébois dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2006, 14h35
  2. un window.open qui ne marche pas sous FF
    Par DevloNewb' dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/07/2006, 14h07
  3. Applet java qui ne marche pas sous opéra, pourquoi ?
    Par WeDgEMasTeR dans le forum Applets
    Réponses: 2
    Dernier message: 17/05/2006, 00h23
  4. HTTP_REFERER qui ne marche pas sous IE
    Par manaboko dans le forum Langage
    Réponses: 6
    Dernier message: 15/11/2005, 14h23
  5. javascript:history.go qui ne marche pas sous IE
    Par fpouget dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 23/09/2005, 08h23

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