Avatar billede wolker Nybegynder
08. marts 2003 - 16:29 Der er 9 kommentarer og
1 løsning

Bulk insert med formatfile

Jeg har en tekst-fil der ser således ud
"Jens","18","Nielsen",4
"Kaj","12","Rasmussen",9
"Bent","45","Petersen",2

og jeg ønsker at importere den ind i en tabel, men jeg skal kun bruge fornavn og efternavn. Jeg har prøvet noget ala dette, og mange andre kombinationer.

BULK INSERT dbo.test FROM 'd:\temp\navne.txt'
WITH
(KEEPNULLS, FORMATFILE = 'd:\temp\test.fmt',DATAFILETYPE='char');

Hvor test.fmt ser sådan ud.

8.0
2
1      SQLCHAR      0      50      ","                          2    fornavn SQL_Latin1_General_CP1_CI_AS
3      SQLCHAR      0      50      ","                        4    efternavn SQL_Latin1_General_CP1_CI_AS

Men jeg kan ikke få det til at virke, så mit spørgsmål er, kan det lade sig gøre og hvis ja hvordan.

Tabel test ser sådan ud
id, fornavn, mellemnavn, efternavn, adresse osv.
Avatar billede terry Ekspert
08. marts 2003 - 17:53 #1
you can use DTS for this,
Avatar billede terry Ekspert
08. marts 2003 - 17:55 #2
If you have access to Enterprise manager then right click on the dB and choose All Tasks, then Import data then follow instructions
Avatar billede wolker Nybegynder
09. marts 2003 - 00:20 #3
Jeg kan ikke bruge Enterprise manager, da den ikke er installeret på de pc'er hvor rutinen skal køres.
Det skal laves sådan at det kan sendes ud på en cd til flere kunder og det har i virkeligheden ikke noget med fornavne og efternavn at gør, det var bare for at lavet et simpel eksempel.
Avatar billede wolker Nybegynder
09. marts 2003 - 00:23 #4
Jeg kan forresten se at man kan gemme en DTS som fil, og efterfølgende køre den via dtsrun, vil det så sige at jeg godt kan bruge en sådan løsning også, og i givet fald hvordan.
Avatar billede wolker Nybegynder
09. marts 2003 - 12:48 #6
Ja, og det står sikkert et eller andet sted det jeg skal bruge, men det er bare umulig at finde, med mindre man har en uge eller 2 til sætte sig fuldstændig ind i hvad DTS kan og ikke kan, men det har jeg bare ikke tid til.

Jeg giver i det hele taget ikke ret meget for Microsoft's hjemmeside, da det er komplet uoverskulig og når man tror man har fundet et link der fortæller det man skal bruge, ja så viser det sig bare at linket går hen til en side hvor man allerede har været. Jeg vil dog lige sige at der er rigtig mange gode oplysninger og eksempler på Microsoft.com, det er bare ærgelig at det er så forbandede svært at finde lige det man søger.

Det jeg mangler er et eksempel på hvordan mit spørgsmål kan løses.
Avatar billede janus_007 Nybegynder
22. maj 2003 - 17:55 #7
Er det stadig åbent ? Og vil du ha en svar ??
Avatar billede wolker Nybegynder
22. maj 2003 - 22:49 #8
Hvis du har en færdig eksempel der virker, så vil jeg da godt se den, og så får du selvfølgelig også de 60 point.
Men ellers er det lige meget, da jeg løste det på anden vis.

Men en løsning er jo altid rar at have liggende hvis jeg på et tidspunkt sku stå og mangle det igen.
Avatar billede janus_007 Nybegynder
23. maj 2003 - 11:45 #9
Jamen så vil jeg da lige poste :O)


create table test(
id varchar(5),
fornavn varchar(50),
mellemnavn varchar(50),
efternavn varchar(50),
adresse varchar(50)
)

file: test.fmt

8.0
4
1  SQLCHAR  0  50    ","    2    fornavn        SQL_Latin1_General_CP1_CI_AS
2  SQLCHAR  0  50    ","    0    mellemnavn    SQL_Latin1_General_CP1_CI_AS
3  SQLCHAR  0  50    ","    4    efternavn    SQL_Latin1_General_CP1_CI_AS
4  SQLCHAR  0  5    "\n"    0    id        SQL_Latin1_General_CP1_CI_AS
---
nb:husk at afslutte formatfilen med linjeskift i filen :O)

file: navne.txt
"Jens","18","Nielsen",4
"Kaj","12","Rasmussen",9
"Bent","45","Petersen",2

Det er vigtigt at skrive i formatfilen når der er linjeskift, det har jeg så valgt at gøre efter det tal der står sidst i hver linje i textfilen.

Læs mere om formatfilen: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_impt_bcp_9yat.asp

ps: DTS skal altid undgåes og bør kun anvendes som sidste mulighed for diverse opgaver. DTS er smart nok, men det kører bare alt for langsomt.
Avatar billede wolker Nybegynder
23. maj 2003 - 12:20 #10
Ok, det tror jeg på :-)

Så du får pointene
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester