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

MS SQL Server Discussion :

problème affichage mise à jour


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Par défaut problème affichage mise à jour
    J'ai créé dans une table dossier une colonne saisie avec ce trigger:
    CREATE TRIGGER verif_saisie
    ON DOSSIER
    FOR INSERT, UPDATE
    AS
    UPDATE DOSSIER SET SAISIE=(CASE WHEN EXISTS(SELECT * FROM
    INSERTED I, LIGNE L
    WHERE I.IDDossier = L.IDDossier) THEN 1 ELSE 0 END)
    WHERE IDDossier=(SELECT IDDossier FROM INSERTED)

    Le problème c'est que lorsque je fais la requête SELECT * FROM DOSSIER, toutes les valeurs dans la colonen saisie, pour chaque ligne, sont NULL au lieu de 0 ou 1.
    Que faut-il que je fasse pour que ça fonctionne?
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Que tout soit NULL, je ne sais pas, mais en tout cas ta clause WHERE a un problème, surtout dans le contexte d'un trigger qui peut s'appliquer sur plusieurs lignes de la table inserted.

    ssaie qqch comme ceci (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	UPDATE d 
    	SET SAISIE = (CASE WHEN EXISTS(SELECT * FROM LIGNE L WHERE L.IDDossier = d.IDDossier) THEN 1 ELSE 0 END)
    	FROM dbo.DOSSIER d
    	JOIN INSERTED i ON d.IDDossier = i.IDDossier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Par défaut
    Je pense qu'il faut créer le trigger puis faire la commande update.
    Toutes les valeurs dans la colonne saisie seront alors 0 ou 1.
    Merci rudib!

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2015, 13h10
  2. [WD16] problème de mise à jour d'affichage d'une table
    Par kirikou84 dans le forum WinDev
    Réponses: 5
    Dernier message: 15/12/2014, 14h58
  3. [2000 Server] Problème de mise à jour windowsupdate !!
    Par rohstev dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 24/08/2005, 15h03
  4. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 11h38
  5. problème de mise à jour de BD
    Par tidiane dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/03/2004, 15h32

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