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 :

Insérer des lignes dans une table efficacement


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Insérer des lignes dans une table efficacement
    Bonjour,

    je cherche à insérer des données dans une table.
    Une requete simple a la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into wkftcfw(cdhmp, cdfordon, cdapppgm, lbhmp, ormodsai, dtmaj, nuetp)  
    values ('PAYSFABRICATION1','ALP','WAM','Pays Fabric 1','0',getdate(),null)
    Le souci, c'est que j'insère pour chaque ligne, les mêmes valeurs, excepté pour les colonnes 'cdhmp' et 'lbhmp'.
    Pour ces colonnes, il y a que le numéro 1,2,3,... qui change suivant la ligne.
    ex: PAYSFABRICATION1,PAYSFABRICATION2,PAYSFABRICATION3,...

    Je cherche donc un moyen d'automatiser cette tâche, sachant que j'ai un nombre conséquent de lignes à insérer.

    J'ai pensé à une boucle for..., mais je pense que ca n'existe pas en SQL. Et je n'arrive pas à adapater la boucle "while"...

    Merci pr vos réactions!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonsoir, si tu es sous SQL SERVER 2005 tu peux faire quelque chose dans cet esprit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    DECLARE @i INT;
    DECLARE @MAX INT; 
    DECLARE @texte VARCHAR(50);
    
    SET @i = 0;
    SET @MAX = X; --X étant le nombre MAX d'enregistrement que tu as à faire.
    
    WHILE(@i<=@MAX)
    BEGIN
    	SET @texte = CONVERT(VARCHAR(50),@i);
    	
    	INSERT INTO wkftcfw
                      (cdhmp, 
                      cdfordon, 
                      cdapppgm, 
                      lbhmp, 
                      ormodsai, 
                      dtmaj, 
                      nuetp)  
            VALUES 
                      ('PAYSFABRICATION'+@texte,
                      'ALP',
                      'WAM',
                      'Pays Fabric'+@texte,
                      '0',
                      getdate(),
                      null)
    
    	SET @i = @i+1;
    	CONTINUE;
    END
    J'espère que cela t'aidera.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Tu peux aussi passer par un déclencheur sur ta table dans laquelle tu aura au préalable créé un champ de type compteur.

    CREATE TRIGGER [PaysFabricationAuto] ON [dbo].[wkftcfw]
    FOR INSERT
    AS
    BEGIN
    UPDATE wkftcfw SET cdhmp=([PaysFabrication] + cast([Compteur] as varchar) WHERE wkftcfw.[Identificateur unique]=(select [Identificateur unique] from inserted)
    END

    Où par exemple, Identificateur unique correspond à un n° de client, d'article.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2015, 16h18
  2. Insérer des lignes dans une table
    Par kouki2011 dans le forum SQL
    Réponses: 2
    Dernier message: 28/04/2011, 18h22
  3. Insérer des lignes dans une StringGrid
    Par da_latifa dans le forum Composants VCL
    Réponses: 1
    Dernier message: 26/09/2005, 12h45
  4. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  5. 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, 18h50

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