Avatar billede hpb Nybegynder
03. april 2003 - 08:06 Der er 9 kommentarer og
1 løsning

Indsæt flere poster i et statement

Hej,

Kan man indsætte flere poster i MS-SQL i et statement, ala INSERT INTO tabel (att1,att1) VALUES (value1,value2),(value3,value4),(value5,value6) ??

Jeg ved at det kan lade sig gøre i MYSQL, men kan det i MS-SQL ?
Avatar billede arne_v Ekspert
03. april 2003 - 08:18 #1
Det kan man ikke i standard SQL.

Men hvorfor ikke vare lave N x INSERT ?

(du kan jo putte dem alle i en enkelt transaction)
Avatar billede hpb Nybegynder
03. april 2003 - 08:24 #2
Det kan jeg også godt, problemet er bare at det drejer sig om ca. 30.000 records, derfor ville en anden løsning være at foretrække.
Avatar billede arne_v Ekspert
03. april 2003 - 08:48 #3
Er 30000 records et problem ?

(MS SQL burde da sagtens kunne klare en transaktion med 30000 inserts)
Avatar billede venne Nybegynder
03. april 2003 - 09:05 #4
Hvis du absolut vil indsætte flere rækker i ét statement kan du eventuelt prøve:

INSERT INTO tabel (a, b)
SELECT 1, 1
UNION SELECT 2, 2
UNION SELECT 3, 3
UNION SELECT 4, 4
osv...

Om ikke andet kan man da spare roundtrips til serveren på den måde.
Avatar billede janus_007 Nybegynder
03. april 2003 - 22:40 #5
Jeg ville bulk inserte, hvis der var mange inserts!. En insert into n-gange er lige lovligt megen trafik (og ganske unødigt)
Avatar billede hpb Nybegynder
04. april 2003 - 12:12 #6
>> janus_007 jeg tror ikke helt jeg forstår dit svar ! Hvad er " bulk inserte" og hvordan bruges det ? evt. eks.
Avatar billede janus_007 Nybegynder
04. april 2003 - 12:47 #7
Jo sføli...
Hvor kommer data'erne fra som du skal have inserted??
Avatar billede hpb Nybegynder
04. april 2003 - 13:51 #8
fra en text-fil, med en record på hver linie
Avatar billede janus_007 Nybegynder
04. april 2003 - 13:58 #9
Okay så meget desto nemmere!
Så bruger du DataTransformationServices til opgaven. vælg new package, under connection vælger du textfile og sætter til datasource, så vælger du en connection mere, denne gang skal det være til din database/ tabel. Herefter forbinder du de 2 med hinanden vha. TransformDataTask (findes under task) sætter de korrekte delimeters op osv... og trykker på play :O)
Avatar billede hpb Nybegynder
04. april 2003 - 14:04 #10
Tak
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