SQL Server 2005 - INSERT multiples

SQL Server 2005 - INSERT multiples - SQL/NoSQL - Programmation

Marsh Posté le 20-09-2007 à 17:30:32    

Bonjour,
 
La syntaxe SQL Standard ci-dessous ne marche pas dans SQL Server 2005 :
 

Code :
  1. INSERT INTO [eBanking].[dbo].[BankCode]
  2.            ([BankCountryCode]
  3.            ,[Code1]
  4.            ,[Code2]
  5.            ,[Descr])
  6.      VALUES
  7.            ('FR','25','108','French code'),
  8. ('SE','157','118','Swedish code'),
  9. ('IT','25','119','Italian code'),
  10. ('CH','157','121','Swiss code'),
  11. ('NO','25','124','Norwegian code'),
  12. ('FI','25','125','Finnish code'),
  13. ('BE','25','128','Belgian code'),
  14. ('DK','25','130','Danish code'),
  15. ('DE','25','131','German code'),
  16. ('UK','154','133','G.B. code'),
  17. ('AU','25','137','Austrian code'),
  18. ('WW','25','5','ISO code (swift)'),
  19. ('ZZ','ZZZ','ZZZ','not defined');


 
Erreur :

Msg 102, Level 15, State 1, Line 7
Incorrect syntax near ','.


 
Qu'est ce qu'ils nous ont inventé encore  :??:


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 20-09-2007 à 17:30:32   

Reply

Marsh Posté le 20-09-2007 à 18:11:01    

bah en 2000 cela n'aurait pas mieux fonctionné il me semble :)
 
si tu as une syntaxe Insert Into .. Values, il te faudra toujours la répéter complétement pour chaque values.
 
Sinon si tu as beaucoup de données tu fais un bulk insert d'un fichier texte dans une table temporaire puis tu fais un Insert.. Select
 
Exemple en admettant que tu utilises un ';' pour séparer tes champs
 

Code :
  1. -- Déclaration variable
  2. declare @e_PathFichier varchar(100), @v_Cmd varchar(1000)
  3. -- A modifier
  4. set @e_PathFichier = 'd:\tonfichier.txt'
  5. -- Table de travail
  6. create table #tmp
  7. (
  8. teschamps type,
  9. )
  10. -- Insertion du fichier texte
  11. SET @v_Cmd = 'BULK INSERT #tmp FROM "'+@e_PathFichier+'" WITH (CODEPAGE = ''ACP'',ROWTERMINATOR = ''\n'',FIELDTERMINATOR  = '';'')'
  12. EXEC (@v_Cmd)
  13. INSERT INTO [eBanking].[dbo].[BankCode]
  14.            ([BankCountryCode]
  15.            ,[Code1]
  16.            ,[Code2]
  17.            ,[Descr])
  18. select ... from #tmp
  19. -- Suppression de la table de travail
  20. drop table #tmp

Reply

Marsh Posté le 21-09-2007 à 12:40:27    

syntaxe standard tu dis ?
source ?
 
à ma connaissance, seul mysql supporte cette syntaxe qui ne me semble pas bien standard...

Reply

Sujets relatifs:

Leave a Replay

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