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 :

probléme Requete de suppression SQL server


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Par défaut probléme Requete de suppression SQL server
    Bonjour,

    j'ai une table avec deux clé primaire:

    create table BL(Numero integer,Exercice integer,Reference varchar(50) constraint fk_bl foreign key references produit,qtebl integer, constraint pk_bl primary key(Numero,Reference))


    donc un numéro BL peut correspondre à plusieurs références de produits.

    je veux supprimer un numéro de la table par exemple le numéro 3 (les références aussi, mais qu'il ne soient pas supprimé de la table produit (non en cascade) ) mais j'ai du mal avec la requête:

    delete from bl where numero=3

    après exécution de la requête, le message d'erreur suivant apparait:

    Msg 512, Niveau 16, État 1, Procédure t5, Ligne 2
    La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.
    L'instruction a été arrêtée.


    quelqu'un peut-il m'aider ? ^^

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Le message d’erreur, semble t-il, provient d’une autre instruction ou autre traitement.
    L’instruction : delete from bl where numero=3
    n’est vraisseblablement pas à l’origine de l’erreur (ou pas directement)
    Conclusion :
    - Vérifie bien le contenu de la procédure t5 (?),
    - Vérifie également, à tout hazard, s’il n’existe pas des triggers établis sur la table BL,
    - et n’oublie pas de fournir, le cas échéant, une copie des script de la procédure t5 (?) et éventuellement les scripts des triggers établis sur la table BL.

    A+

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Par défaut
    Citation Envoyé par hmira Voir le message
    Le message d’erreur, semble t-il, provient d’une autre instruction ou autre traitement.
    L’instruction : delete from bl where numero=3
    n’est vraisseblablement pas à l’origine de l’erreur (ou pas directement)
    Conclusion :
    - Vérifie bien le contenu de la procédure t5 (?),
    - Vérifie également, à tout hazard, s’il n’existe pas des triggers établis sur la table BL,
    - et n’oublie pas de fournir, le cas échéant, une copie des script de la procédure t5 (?) et éventuellement les scripts des triggers établis sur la table BL.

    A+


    mais mdr, déjà merci beaucoup, ça vient effectivement d'un trigger que j'ai créé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create trigger t5 on BL after delete as
    delete from Entree 
    where (Reference=(select reference from deleted)) 
    and (Dateen=(select datebl from deleted)) 
    and (HeureEN=(select Heure from deleted))

    j'ai pu maintenant gérer ça en ADO ^^ merci pour tout

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Permets de te signaler que ton trigger t5 est très mal écrit. En effet, les triggers, sous SQL Server, sont de type Statement et non de type Row, c.à.d qu’ils portent sur un ensemble d’enregistrements ajoutés, modifiés ou supprimés et non pas sur un seul enregistrement. Le pseudo dataset (ou table mémoire) deleted peut contenir plusieurs enregistrements.
    Or ton trigger suppose qu’il y a un seul enregistrement dans la table Deleted, et c’est d’ailleurs cela l’origine de l’erreur.

    Je te suggère fortement de modifier ton trigger t5 comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TRIGGER t5 on BL 
    AFTER DELETE AS
    DELETE E
    FROM ENTREE E
    INNER JOIN Deleted D 
      ON   E.Reference = D.Reference 
      AND  E.DateEn = D.DateBL 
      AND  E.HeureEn = D.Heure

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Par défaut
    Merci beaucoup pour ton aide Hmira

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

Discussions similaires

  1. Creation de Requete Croisée sous SQL Server 2K
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/08/2005, 17h14
  2. Portage requete Access vers SQL Server (Iif)...
    Par cmousset dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/06/2005, 16h38
  3. [SQL Server]Problème avec l'authentification SQL SERVER
    Par tidou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2005, 15h40
  4. Problème d'installation de sql server 2000
    Par michelci dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/12/2003, 08h02
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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