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 :

delete sur le résultat d'une CTE


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    test
    Inscrit en
    Octobre 2016
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : test
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 135
    Points : 49
    Points
    49
    Par défaut delete sur le résultat d'une CTE
    hello ,

    Ma question n'a peut-être pas de sens. mais comment je peux lancer une delete sur une résultat de CTE
    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
    WITH cte
         AS (SELECT *
             FROM MATV3_LNK_UC M
                  INNER JOIN Purge.Purge_Select_dossier  P    ON M.COD_CEL_CBL = P.COD_CEL
                                               AND M.COD_EXP_CBL = P.COD_EXP
                                               AND M.NUM_DOS_CBL = P.NUM_DOS
     
             UNION
             SELECT *
             FROM MATV3_LNK_UC  M
                  INNER JOIN Purge.Purge_Select_dossier  P ON M.COD_CEL_SRC = P.COD_CEL
                                              AND M.COD_EXP_SRC = P.COD_EXP
                                               AND M.NUM_DOS_SRC = P.NUM_DOS)
        delete C
         FROM cte c where  YEAR(c.DAT_DOS) =2020
    EN FAIT j'ai ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*4405, Niveau*16, État*1, Ligne*1
    View or function 'C' is not updatable because the modification affects multiple base tables.
    Merci pour vos retour

  2. #2
    Membre expérimenté Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 533
    Points : 1 562
    Points
    1 562
    Par défaut
    Tu ne peux pas !

    Mais tu peux faire une jointure entre ta table MATV3_LNK_UC (si c'est là que tu veux supprimer) et ta CTE par la clef primaire, genre (fait rapidement et non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ; with CTE as ()
    delete M
    from MATV3_LNK_UC as M
    INNER JOIN CTE ON CTE.pk = M.pk

Discussions similaires

  1. [Etat] Basé sur le résultat d'une requête
    Par Pascal26 dans le forum WinDev
    Réponses: 13
    Dernier message: 12/04/2007, 10h04
  2. pb sur le résultat d'une sélection(up!)
    Par developman dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/01/2007, 22h37
  3. Réponses: 11
    Dernier message: 11/08/2006, 17h52
  4. Réponses: 3
    Dernier message: 11/01/2006, 19h35
  5. [Firebird] DELETE sur le résultat d'une requete d'un IBQUERY
    Par shashark dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/06/2005, 19h17

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