Just nu i M3-nätverket
Jump to content

Jag vill impotera data från en CSV-fil till SQL server


Jonas Granstrand

Recommended Posts

Jonas Granstrand

Hej

 

Jag har en produktdatabas som jag skulle vilja importera prisfiler till. Filerna är av typen CSV, TXT, Excel m.m...

Resultatet skall in i en "råformats-tabell" som jag senare kommer att selektera från in i den riktiga tabellen. Eftersom de prisfilerna ser lite olika ut så vill jag kunna styra vad som ska med och vad som skall hoppas över.

Ex.

 

levarantör.txt

Benämning;Beskrivning;Pris;Ilager

blyertspenna;Går att vässa;35;12

Kulspetspenna;Behöver bläck;25,5;40

 

Annanleverantör.txt

ArtikelId;Pris;Ilager

blyertspenna;31;0

Kulspetspenna;22;98

 

Min Tabell innehåller följande kolumner:

UniktId (räknare)

ProduktId

Pris

Antal

 

Alltså skall Beskrivning från första filen inte med i importen.

Antar att de ska ske med någon form av INSERT, men hur väljer jag filer som källa och vilka fält som skall med?

 

Tacksam för hjälp!

/jonas

 

Link to comment
Share on other sites

Enklast är ju att göra det direkt i Enterprise Manager, men det kanske är uteslutet för din del, eller?

Annars använder du lämpligast command-line-kommandot bcp för att göra en "bulk"-överföring av datan. Eftersom du inte vill ha med alla kolumnerna finns det en parameter (FORMATFILE) som specificerar en formatteringsfil, i vilken du beskriver vilka fält som skall överföras. Exakt hur denna skall se ut vet jag inte, då jag aldrig behövt använda denna parameter.

 

EDIT: Gå in i SQL Server Books Online och skriv in "format files" så hittar du all info du behöver för att skapa en formatteringsfil

[inlägget ändrat 2006-11-18 14:55:37 av Anjuna Moon]

Link to comment
Share on other sites

  • 2 months later...
Jonas Granstrand

Hej

 

Efter att mycket annat stått ivägen har jag nu äntligen fått tid att sitta ner och fixa mina BULK INSERT. Det funkar fint för txt och csv filer men jag får inte till det med xls filer. Koden jag använder för txt och csv ser ut så här:

BULK INSERT TabellNamn FROM 'c:\prisfiler\LeverantörA\A_priser.txt' WITH (FIELDTERMINATOR = '\t')

 

Just nu struntar jag alltså i att välja fält utan tar in allt. Funkar det här sättet att göra BULK INSERT med xls-filer eller måste jag göra på annat sätt?

Jag har försökt ändra FIELDTERMINATOR och ROWTERMINATOR i alla möjliga kombinationer men ingen funkar. Har jag missat något för just xls?

 

MVH

Jonas

 

Edit: Poäng till Anjuna, tack för hjälpen!!!

 

[inlägget ändrat 2007-01-23 14:41:37 av Jonas.G]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...