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 :

suppression multiple, clé primaire multiple


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Points : 23
    Points
    23
    Par défaut suppression multiple, clé primaire multiple
    Bonjour,
    je voudrais supprimer beaucoup de lignes dans la table nommée rights en une seule requête.
    Le problème c'est que la clé primaire de ma table rights est composé de 3 champs.
    Voici ma requête (qui fonctionne parfaitement en postgreSQL) :
    delete from rights where (icn_id, ent_id, rol_id) in (select r.icn_id, r.ent_id, r.rol_id from rights r
    where (r.rol_id >=1400 or r.rol_id <1300));

    comment faire en sql server ?
    j'ai essayé avec = à la place de in

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Le row value constructor n'étant pas supporté en SQL Server. De plus votre suppression n'en a pas besoin car elle se résume à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    delete from rights 
    where rol_id >=1400 
          rol_id <1300
    A +

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Points : 23
    Points
    23
    Par défaut
    oui tout à fait cette requête peut être simplifiée.
    mais je l'ai simplifié volontairement pour pas embrouiller mon besoin essentiel qui est de supprimer des lignes dans une table en récupérant ces lignes avec un select. avec la particularité que la clé primaire se compose de 3 champs.

    merci pour le row value constructor

    existe il une autre facon d'ecrir cette requête ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par javaweb44
    oui tout à fait cette requête peut être simplifiée.
    mais je l'ai simplifié volontairement pour pas embrouiller mon besoin essentiel qui est de supprimer des lignes dans une table en récupérant ces lignes avec un select. avec la particularité que la clé primaire se compose de 3 champs.

    merci pour le row value constructor

    existe il une autre facon d'ecrir cette requête ?
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    DELETE R1
    FROM RIGHTS R1 INNER JOIN RIGHTS R2
    ON R1.icn_id = R2.r.icn_id
    AND R1.ent_id = R2.ent_id
    AND R3.rol_id = R2.rol_id
    WHERE r2.rol_id >=1400 
    OR r2.rol_id <1300

Discussions similaires

  1. Clés primaires multiples non autorisées ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 15/02/2007, 16h16
  2. creation d'une table avec une clé primaire multiple
    Par oursquetaire dans le forum Oracle
    Réponses: 2
    Dernier message: 23/12/2005, 14h29
  3. Clé primaire multiple
    Par Korskarn dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/11/2005, 10h10
  4. Access 97 - Clés primaires multiples
    Par Korskarn dans le forum Access
    Réponses: 5
    Dernier message: 09/11/2005, 12h12
  5. Clé primaire multiple
    Par befb dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 12/07/2004, 17h38

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