Problème de syntaxe "Insert Into Values"

Problème de syntaxe "Insert Into Values" - SQL/NoSQL - Programmation

Marsh Posté le 13-05-2005 à 15:34:08    

Bonjour,
 
Je souhaite insérer des enregistrement dans une table SQL, je dois pour cela créér ma requête dans une boucle (c#) afin de créer dynamiquement la requête avant de l'exécuter.
 
Le but de cette manipulation est en fait de n'exécuter qu'une seule requête au lieu d'une par enregistrements.
 
J'ai un problème lorsque j'utilise la syntaxe suivante :
 
INSERT INTO MaTable Values (1,2,3),(4,5,6);
 
Cette syntaxe me semblait pourtant valable...
 
Pourriez vous m'aider sur ce point
 
Merci d'avance

Reply

Marsh Posté le 13-05-2005 à 15:34:08   

Reply

Marsh Posté le 13-05-2005 à 15:44:39    

INSERT INTO MaTable (champ1,champ2,champ3) Values (1,2,3),(4,5,6);  
ca marche pas mieux ?

Reply

Marsh Posté le 13-05-2005 à 15:48:05    

Pas mieux :(
 
"Impossible d'analyser le texte de la requête."


Message édité par lordkoko le 13-05-2005 à 15:49:35
Reply

Marsh Posté le 13-05-2005 à 15:54:58    

C'est sur quel SGBD?
Tu as vérifié le type de tes champs?
Moi ca marche avec MySQL.

Reply

Marsh Posté le 13-05-2005 à 16:02:30    

SQL Server 2000,
 
J'ai aussi trouver des exemples de codes sur MySQL mais pas encore sur SQL ... peut-être y a t'il une différence
 
Je continue mes recherches...
 
Si vous avez des idées !

Reply

Marsh Posté le 13-05-2005 à 16:15:57    

lordkoko a écrit :

SQL Server 2000,
 
J'ai aussi trouver des exemples de codes sur MySQL mais pas encore sur SQL ... peut-être y a t'il une différence
 
Je continue mes recherches...
 
Si vous avez des idées !


Salut,
 
Je ne suis pas un expert absolu en SQL 2000 mais il ne me semble pas que tu puisses le faire comme ça.  
 
Tu peux faire un insert into select mais je ne pense pas que cela t'arrange forcément dans ton cas...
 
Autrement, ce que tu peux faire c'est utiliser une SP. Dans cette SP tu crées un curseur et ensuite tu utilises le curseur pour faire un insert into.
 
Voilà peut-être que cela pourra t'aider.
A+

Reply

Marsh Posté le 13-05-2005 à 16:40:25    

Quelqu'un pourrait t'il confirmer qu'on ne peux pas insérer plusieurs enregistemnts dans une même requête SQL sous SQL Server 2000 ...
 
Merci.
 
Sinon que pensez vous de cet article concernant l'insertion d'enregistrement dans une base SQL ?
http://sql.developpez.com/sqlaz/dml/
 
Dernière chose... à quoi correspond la version SQL2 à laquelle il font référence ?
 
Merci à tous


Message édité par lordkoko le 13-05-2005 à 16:54:56
Reply

Marsh Posté le 13-05-2005 à 18:00:19    

Je viens de trouver cette page qui explique bien la chose [pour les curieux]
http://www.planet-source-code.com/ [...] 7&lngWId=5
 
 
Voici un bref résumé et une réponse à ma question
 
-----------------------------------------------------
INSERT MULTIPLE row values instead of using multiple INSERT statements
I read an article on IBM´s homepage on DB2 where they had a tip on how to insert multiple row values with one statement like this  
INSERT INTO [TABLE] values ('Value1','Fernando'),('Value2','Carlos'), ('Value3','Vincent')
This is not possible in MS SQL. But there is a work around using multiple UNION ALL statements. See code bellow
INSERT INTO[TABLE]  
select 'Value1','Fernando'  
UNION ALL
select 'Value2','Carlos'  
UNION ALL
select 'Value3','Vincent'  
 
When inserting many values this should improve performance and typing.
-----------------------------------------------------
 
 
Merci à tous

Reply

Marsh Posté le 13-05-2005 à 18:02:43    

Merci d'avoir mis ta solution.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed