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écisions SGBD Discussion :

Copier des lignes d'une table


Sujet :

Décisions SGBD

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut Copier des lignes d'une table
    Bonjour.
    Mon problème est assez simple dans son énoncé, mais plus compliqué à mettre en pratique .

    J'ai une table TASKS. Celle-ci a de multiples colonnes dont une concerne le Project : la colonne ProjectID.

    Ce que je voudrais faire, c'est copier toutes les lignes d'un certain Project pour un nouveau Project.

    Exemple :
    Task1 - Project A - ...
    Task 2 - Project B - ...

    Résultat :
    Task1 - Project B - ...
    Task 2 - Project B - ...

    La solution simple serait de faire un curseur pour récupérer les lignes du Projet A, puis d'insérer les nouvelles lignes pour le Project B.

    Le gros problème, c'est que la table TASKS a vraiment beaucoup de colonnes, donc je me vois mal récupérer une à une chaque valeur de chaque ligne ...


    Est-ce qqun a une idée ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 118
    Points : 28 515
    Points
    28 515
    Par défaut
    Quelque chose comme cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    insert into TASKS
    (PROJECT_ID
    ,TASK_ID
    ,...)
    select 'PROJET_NOUVEAU'
    , TASK_ID
    , ...
    from TASKS
    where PROJECT_ID = 'PROJET_a_COPIER'
    P.S. Ta question serait mieux placée dans le forum Langage SQL

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Tout à fait ca, sauf que je voudrais éviter de devoir énumérer les noms des colonnes, il y en a trop , ...


    PS : je fais comment pour déplacer ces messages dans la forum "Langage SQL" ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 118
    Points : 28 515
    Points
    28 515
    Par défaut
    Il est indispensable dans ce cas d'énumérer les noms de colonnes, puisque les lignes ne sont pas copiées à l'identique.
    D'ailleurs, il est recommandé d'énumérer les colonnes pour éviter des comportements non prévus si la structure des tables est modifiée.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    C'est bien ce que je craignais.
    Merci.

  6. #6
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Salut, tu ne connais pas l'outil DTS de SQL Server ? Il te permettrait me semble-t-il de faire ceci très rapidemment.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Non, je ne connais pas cet outil.

    Mais ce qu'il me faut, c'est pouvoir exécuter ce code dans des requêtes SQL, dans des procédures stockées. Est-ce que cet outil peut être appelé via ces procédures ?

  8. #8
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    ça je peux pas te l'affirmer, par contre ce dont je suis certain, c'est que cet outil de permet d'exécuter des requêtes SQL ou d'appeler une procédure stockée, ça j'en suis sur.

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

Discussions similaires

  1. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 21h03
  2. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 13h53
  3. Réponses: 14
    Dernier message: 22/09/2005, 17h49
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 19h50
  5. Réponses: 4
    Dernier message: 31/05/2004, 13h26

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