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 :

INSERT INTO probleme


Sujet :

MS SQL Server

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut INSERT INTO probleme
    J'ai cree une base des donnees Persoane avec une table Pers qui a les champs suivants :

    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
     
     
    -- creation base des donnees nomme Persoane
     
    CREATE DATABASE Persoane
     
    USE Persoane
     
    -- creation tableau nomme Pers
     
    CREATE TABLE Pers
    (P_Id int PRIMARY KEY NOT NULL,
    Nume varchar(255),
    Prenume varchar(255),
    Adresa varchar(255),
    Oras varchar(255)
    )
     
     
    Puis j'ai fais:
     
    SELECT * FROM Pers
    Voila l'effet:



    Juste ici c'est correct ce que je veux faire.

    Il semble que je n'avais pas bien compris l'utilisation d'INSERT INTO pour inserer des enregistrements dans une table.


    Je veux inserer trois enregistrements dans la table Pers a l'aide de la clause INSERT INTO:

    Voila les 3 enregistrements que je veux inserer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO Pers(P_Id,Nume,Prenume,Adresa,Oras)
    VALUES
    (1, 'Pop','Virgil', 'Str.Florilor', 'Ploiesti'),
    (2, 'Pop','Mihai', 'Str.Iaz', 'Campina'),
    (3, 'Pop', 'Ion', 'Str.Lacului', 'Oradea')
    Mais query editor du SQL Server me renvoie cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Msg 102, Level 15, State 1, Line 4
    Incorrect syntax near ','.
     
     
    C'est a la ligne:
     
    (1, 'Pop','Virgil', 'Str.Florilor', 'Ploiesti'),

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Quand vous faites un "INSERT INTO TABLE VALUES" vous ne pouvez insérer qu'une seule ligne.

    Soit vous faites trois ordres d'insert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Pers (P_Id,Nume,Prenume,Adresa,Oras) VALUES (1, 'Pop', 'Virgil', 'Str.Florilor', 'Ploiesti');
    INSERT INTO Pers (P_Id,Nume,Prenume,Adresa,Oras) VALUES (2, 'Pop', 'Mihai' , 'Str.Iaz'     , 'Campina' );
    INSERT INTO Pers (P_Id,Nume,Prenume,Adresa,Oras) VALUES (3, 'Pop', 'Ion'   , 'Str.Lacului' , 'Oradea'  );
    Soit vous faites un seul insert avec un select récupérant toutes vos données, et vous n'indiquez pas le mot values :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Pers (P_Id,Nume,Prenume,Adresa,Oras)
    select 1, 'Pop', 'Virgil', 'Str.Florilor', 'Ploiesti' union all
    select 2, 'Pop', 'Mihai' , 'Str.Iaz'     , 'Campina'  union all
    select 3, 'Pop', 'Ion'   , 'Str.Lacului' , 'Oradea';

  3. #3
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Merci beacoup waldar!

    Tu es tres gentil!

    C'est resolu maintenant!

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Citation Envoyé par mihaispr
    Voila les 3 enregistrements que je veux inserer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO Pers(P_Id,Nume,Prenume,Adresa,Oras)
    VALUES
    (1, 'Pop','Virgil', 'Str.Florilor', 'Ploiesti'),
    (2, 'Pop','Mihai', 'Str.Iaz', 'Campina'),
    (3, 'Pop', 'Ion', 'Str.Lacului', 'Oradea')
    Il ne s'agit pas d'enregistrements mais de lignes

    La syntaxe que vous avez employée pour votre INSERT fonctionne sous SQL Server 2008

    @++

  5. #5
    Membre habitué
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    J'ai l'impression que la fonction d'insertion de multiples lignes en 2008 n'est pas très performante. Je ne gagne pas grand chose. De plus on est limité a 1000 lignes


    Alors que sous mysql la différence est flagrante.

  6. #6
    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 : 40
    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
    Citation Envoyé par rippoz Voir le message
    Bonjour,

    J'ai l'impression que la fonction d'insertion de multiples lignes en 2008 n'est pas très performante. Je ne gagne pas grand chose. De plus on est limité a 1000 lignes


    Alors que sous mysql la différence est flagrante.
    Je ne gagne pas grand chose signifie tout de même qu'un gain est constaté, c'est déja bien.
    Pour ce qui est de la limite à 1000 lignes, je pense que c'est suffisant, la possibilité d'utiliser un select comme source d'insert est toujours disponible.
    Dans quel cas souhaiteriez vous ajouter plus de 1000 lignes de la facon discutée ici ?

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

Discussions similaires

  1. [MySQL] Probleme d'Insert into
    Par Fredo02 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/10/2005, 11h40
  2. probleme avec insert into
    Par bscorpion dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/07/2005, 13h00
  3. probleme insert into
    Par w.b. dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/02/2005, 10h34
  4. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 15h54
  5. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 15h36

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