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

Langage SQL Discussion :

Mise à jour de champs d'une table


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Mise à jour de champs d'une table
    Bonjour,

    j'ai deux tables table1 et table2
    je veux parcourir la table2 et mettre à jour deux colonnes de ma table1.
    Quelle requête pourrai je utiliser pour faire ce travail

    Merci d'avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Salut,

    Cela dépend de la structure de tes tables, un update peut être suffisant, mais il te faudra peut être utiliser un curseur.
    Je pense qu'il faudrait que tu developpes un peu plus ta question pour avoir une réponse précise.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    SALUT,

    par exemple je veux faire des requetes de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while exists  (select compte10, compte61 from cptclos p1)
    begin
    	update cartes p2
    	set p2.no_compte = 'p1.compte61',
    	    p2.com_no_compte='p1.compte61'
    	where p2.no_compte=p1.compte10
    end
    Donc je veux utiliser les données de la table CPTCLOS pour mettre à jour mes deux colonnes de la table CARTES

    Mais cette requête ne fonctionne pas.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Il me semble qu'un update sur deux tables n'est possible que sous condition restreinte en SQL normatif .Pour ce que tu veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE cartes 
    	SET no_compte = (SELECT  compte61 FROM cptclos p1 where p1.compte10=no_compte),
    	    com_no_compte=(SELECT  compte61 FROM cptclos p1 where p1.compte10=no_compte)
    Certains SGBD prévoient des extensions, comme SQL server, mais la syntaxe diffère selon le sgbd, par conséquent, donne nous ton sgbd si tu veux qu'on t'aide.

    A+
    Soazig

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai SQL SERVER 2000 comme SGBD

    Merci encore

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé votre requête mais elle sort une erreur à l 'exécution "la Colonne no_compte ne peut pas prendre la valeur NULL" alors que dans CPTCLOS il n y a pas de valeur NULL

  7. #7
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Votre SGBD vous renvoie cette erreur parce que la relation p1.compte10=no_compte ne vous ramene aucun enregistrement pour le no_compte en question.
    Pour resoudre le probleme il faudrait utiliser un EXISTS dans le subselect.

    Bon courage

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Comment utiliser le "EXISTS" dans le subSelect ???

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/01/2008, 12h36
  2. Mise à jour des champs d'une table
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2006, 16h57
  3. Module de mise à jour des champs d'une table
    Par kikaillo dans le forum Access
    Réponses: 14
    Dernier message: 18/04/2006, 10h42
  4. Réponses: 6
    Dernier message: 07/02/2006, 15h44

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