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 :

[Optimisation] Insertion en masse !


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut [Optimisation] Insertion en masse !
    Bonjour,

    toujours des soucis d'optimisation pour mon SI !!

    j'ai une requête A de sélection. Cette requête me retourne 2 champs c1 et c2
    maintenant, je veux insérer les résultats de cette requête en masse dans une autre table, c fesable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Insert into T2 (ct1, ct2, ct3)
    select 1, 'aaaa' + c1, 'bbbb' + c2 
    From T1
    ce code fonctionne et il est simple ... MAIS ... en effet les champs ct1 et ct2 de la table T2 forment la clé primaire et pous plusieurs raisons, le champs ct1 est un numérique qui doit s'incrémenter (d'habitude je fais un Max(ct1)+1)
    ici pour simplifier l'exemple, j'ai enlevé la clé et j'ai toujours inséré 1

    Jusuq' a maintenant, je fait tout ceci par code VB (oui trés lourd à faire) c'est à dire l'incrémentation !!!

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Insert into T2 (ct1, ct2, ct3)
    select Max(ct2)+1, 'aaaa' + c1, 'bbbb' + c2 
    From T1, T2
    Groupe by c1, c2
    ceci ne marche pas par ce qu'il prend le premier max et insère la taotalité en incrémentant juste une seule fois !!

    Est ce que je dois gérer ceci par une procédure stocké ?

    Avez vous des suggestions ?

    En vous remerçiant.

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Tu pourrais aussi définir cette clé primaire en auto incrémentable non ?
    Du coup, plus besoin de l'incrémenter à la main, avec tous les dangers que cette technique représente..

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/09/2009, 14h31
  2. Insertion en masse dans table de fait
    Par niiccoo dans le forum Oracle
    Réponses: 19
    Dernier message: 29/05/2006, 10h56
  3. [HIBERNATE] Problème d'insert de masse en HQL
    Par ange bleu dans le forum Hibernate
    Réponses: 9
    Dernier message: 20/04/2006, 09h39
  4. [Optimisation] Insert en masse
    Par bobic dans le forum Oracle
    Réponses: 1
    Dernier message: 14/12/2005, 21h11
  5. [9i] Insertion de masse
    Par sygale dans le forum SQL
    Réponses: 2
    Dernier message: 05/12/2005, 09h51

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