Avatar billede nadster Nybegynder
05. november 2004 - 10:21 Der er 3 kommentarer og
2 løsninger

for-løkke i SQL?

Hej

Vil høre om det er muligt at lave en for løkke i sql.
Jeg har en tabel med nogle id i. Så vil jeg for hver id, indstætte nogle data plus id'et i en anden tabel.

Jeg kunne godt via asp lave et loop der, men det er kun denne her ene gang, at der skal sættes data ind i tabellen, så det nemmeste var jo bare at køre det direkte i MS SQL.

Hvad jeg lige umiddelbart tror det drejer sig om, selvom det nok er forkert, så tolker jeg scriptet sådan her:

select id as id1 from tabel1
go
for each id1
insert into tabel2
data1, data2, data3, id1
go

Men det er jo nok ikke helt sådan det skal se ud. Nogle der kan / vil give mig en hjælpene hånd?
Avatar billede fsconsult.dk Nybegynder
05. november 2004 - 10:25 #1
prøv flg. istedet:

insert into tabel2
select id as id1, data1, data2, data3 from tabel1
Avatar billede nadster Nybegynder
05. november 2004 - 10:35 #2
hmm, er lige igang med at kigge på det. Men det data1, data2 osv, kommer ikke fra tabel1, men er "nye". Så skal den vel ikke have de forskellige data med i "select id as id1 from tabel1"?
Avatar billede fsconsult.dk Nybegynder
05. november 2004 - 10:54 #3
du kan lave data1, data, data3 som konstanter  ...  eller er det ikke noget du kan beregne i en select statement?
Avatar billede nolle_k Nybegynder
10. november 2004 - 10:46 #4
Du er nødt til at lave en CURSOR og så loope rundt v.hj.a. denne!!

DECLARE MyCursor CURSOR LOCAL
FOR
    SELECT id FROM table1

OPEN tmp

declare @id int


FETCH NEXT FROM MyCursor INTO
    @id       


WHILE(@@FETCH_STATUS = 0)
BEGIN
    insert into tabel2
        data1, data2, data3, @id

    FETCH NEXT FROM MyCursor INTO
        @id       
END

CLOSE MyCursor
DEALLOCATE MyCursor

Hvis Data1, Data2 og Data3 bare er de samme data hele tiden vil jeg mene at fsconsult.dk's svar skal og kan bruges dvs

insert into table2
SELECT data1, data2, data3, id1
FROM table1
Avatar billede nadster Nybegynder
23. februar 2005 - 23:02 #5
projekt lagt på hylden, spørgsmål lukkes. Tak for hjælpen.
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