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 :

[MSSQL2005] trigger : inserted et deleted vide


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Points : 128
    Points
    128
    Par défaut [MSSQL2005] trigger : inserted et deleted vide
    Bonjour,

    Sauriez-vous dans quels cas il est possible que les tables inserted et deleted soient vides dans le cas de l'execution d'un trigger sur une action d'update ?

    Pour vérifier, j'ai fait ça au tout début du code du trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	declare @test2 int
    	select @test2 = count(*) from inserted
    	print 'nombre = ' + convert(varchar, @test2)
    	select @test2 = count(*) from deleted
    	print 'nombre = ' + convert(varchar, @test2)
    et j'ai comme message :
    nombre = 0
    nombre = 0
    Si le déclencheur est déclenché (logique), il y a bien au moins une ligne dans ces tables ? S'il n'y a aucune modif est ce qu'elles restent vides ?

    Pour info, si ça peut aider, il y a certainement des déclenchements en cascade...

    Merci de m'éclairer,
    ++
    L.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Il est possible que les tables soient vides si la clause WHERE de l'instruction UPDATE ne fait référence à aucun enregistrement. Dans ce cas il y a aucune données à modifier et les tables INSERTED et DELETED sont vides.
    Bon courage pour la suite.

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    Le trigger est déclenché effectivement quel que soit le nombre de lignes impactées... y.c. 0 !

    De plus, un print dans un trigger, c'est pas top !
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

Discussions similaires

  1. [2005] TRIGGER insert,update et delete
    Par lbh85 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 15/04/2013, 11h56
  2. Réponses: 4
    Dernier message: 21/01/2011, 14h53
  3. Crée un trigger (INSERT/DELETE/UPDATE) paramètré
    Par Sergejack dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/09/2009, 12h05
  4. Trigger After Update avec la table Deleted vide ?
    Par azur668 dans le forum Développement
    Réponses: 4
    Dernier message: 24/06/2009, 23h41
  5. [trigger] insert update et delete
    Par kooljy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 13/07/2006, 08h56

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