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 :

IN sur plusieurs champs


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut IN sur plusieurs champs
    Bonjour,

    J'ai une table TOTO qui a une clé primaire sur 2 champs.
    J'ai une table TUTU qui a le même format que TOTO et qui reçoit les modifications à apporter sur certaines lignes de TOTO
    Pour mettre à jour les enregistrements de cette table, j'espérais pouvoir utiliser la requête suivante (comme en Oracle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update TOTO
    set chps3 = (select chps3 from TUTU where chps1 = TOTO.chps1 and chps2 = TOTO.chps2)
    where
    (chps1, chps2) in (select chps1, chps2 from TUTU)
    (chps1, chps2) étant ma clé primaire et chps3 le champ à mettre à jour
    Malheureusement, ça ne fonctionne pas car Sql Server n'accepte pas ma clause IN sur plusieurs champs.
    Comment faire ?

    Merci.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    ne saerait-il pas préférable (et + performant) d'attaquer via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     update TOTO
    set O.chps3 = U.chps3 
    FROM TOTO O INNER JOIN TUTU U 
       ON O.chps1=U.chps1
       AND O.chps2=U.chps2

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    ok merci

    je ne connaissais pas le update ... from ...

    Cordialement.

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

Discussions similaires

  1. Calcul sur plusieurs champs similaires
    Par Zebulonn dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 14h24
  2. Réponses: 2
    Dernier message: 30/11/2004, 09h42
  3. Recherche d'un mot avec LIKE sur plusieurs champs
    Par reynhart dans le forum Langage SQL
    Réponses: 16
    Dernier message: 26/11/2004, 17h41
  4. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55
  5. recuperer les id sur plusieurs champs
    Par matN59 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2004, 10h23

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