Avatar billede hundevennen Nybegynder
05. januar 2011 - 08:49 Der er 11 kommentarer og
1 løsning

insert samme record flere gange

Jeg har en asp formular med flere inputbokse og vil gerne ha indholde indsat i databasen f.eks 20 gange, - altså få lavet 20 ens records.

Noget a la insert into tabel(f1, f2, f3, f4) values (f1, f2, f3, f4)20 gange
Avatar billede Syska Mester
05. januar 2011 - 09:14 #1
declare @i int = 0;

while @i != 20
begin
insert into bla bla bla;
set @i = @i + 1;
end

Håber det giver en ide ... og der findes sikkert andre måder at gøre det på.
Avatar billede hundevennen Nybegynder
05. januar 2011 - 10:57 #2
Nu er du jo .Net mand - det du skriver siger mig ikke noget
Avatar billede Syska Mester
05. januar 2011 - 11:02 #3
Det er SQL syntax ...

Hvor er det du vil køre dette SQL henne?
Avatar billede hundevennen Nybegynder
05. januar 2011 - 11:20 #4
jeg vil jo køre den på en asp side.
Jeg har en side hvor jeg har en liste over aktiviteter.
D.v.s. noget lignende et regneark, men lavet i asp.
Det er der jeg gerne vil ha lavet en funktion til at kopiere en række(recordset).
Jeg har tænkt lidt mere over det og man må kunne lave en gentageknap ud for række - lidt lige som en EDIT eller DELETE knap.
altså noget med insert into tabel select * from tabel where id = id
Avatar billede Syska Mester
05. januar 2011 - 11:28 #5
Du er godt klar over du har oprettet dit spm i en SQL Kategori?
Nu nævner du selv at det skal laves i ASP ?

I'm a little lost here ...
Avatar billede hundevennen Nybegynder
05. januar 2011 - 11:37 #6
tjah det ka man vel diskutere - det er jo et spm om man kan lave en sql sætning der gør det jeg ønsker??
Avatar billede Syska Mester
05. januar 2011 - 11:58 #7
Jamen, den har jeg jo lige postet ...

Men her kommer den igen ... i en lidt anden form.
DECLARE @i int = 0;

WHILE @i != 20
BEGIN
    print @i;
    SET @i = @i + 1;
END

her udskriver den 0 til 19, dvs 20 gange bliver den gennemløbet.

Det er 100% SQL ... jeg er ikke klar over hvad mere du sprøger om, måske jeg har misforstået noget.
Avatar billede hundevennen Nybegynder
05. januar 2011 - 14:36 #8
Det er jo et specifikt id der skal gentages
Avatar billede Syska Mester
05. januar 2011 - 15:30 #9
DECLARE @i int = 0;

WHILE @i != 20
BEGIN
    INSERT INTO table (col1, col2) VALUES ( 10, @i);
    SET @i = @i + 1;
END
Avatar billede Syska Mester
05. januar 2011 - 16:51 #10
Men nej,

Du kan ikke lave en sætning ala:
"INSERT INTO table (col1, col2) VALUES ( 10, @i);".Repeat(10); eller hvordan den måske kunne se ud.
Avatar billede PFD Nybegynder
31. januar 2011 - 21:26 #11
Hvorfor ikke bare:

INSERT INTO table (col1, col2)
VALUES ( 1, 1)
go 20

GO 20 gør at den executer det samme statement 20 gange
Avatar billede Syska Mester
31. januar 2011 - 22:06 #12
Nice ... den kendte jeg faktisk ik' ... så fik jeg det tip med.

Men kan "GO X" være erklæret dynamisk på baggrund af nogle udregninger?

Udfra msdn og andre kilder, så lader det til at den skal være statisk i ens sql batch.

Så er der andre måder at lave loops på end while?

mvh
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