webForumDet fria alternativet

select ->loop ->insert

4 svar · 293 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

på en aspsida är det ju lätt att loopa igenom ett recordset och sedan köra en insert för varje rad, men kan man göra detta direkt i query analyzern med t.ex. while-komandot? (använder sql-2000)
jag behöver föra över följande kolumner: Userid och Email från en tabell till en annan och vill inte handjaga alla poster och tycker det känns onödigt att göra en aspsida bara för detta, så fråga: går det?

select Userid, Email 
from tblWebUsers 
where Ftp = 0
order by Urlid

while ???
Insert Into tblWebUsersEmail (Userid, Email) Values (??, ??)
end
@ndersMedlem sedan juni 200032 969 inlägg
#2

Varför krångla?

Detta borde räcka alldeles utmärkt:

INSERT INTO tblWebUsersEmail (Userid, Email) SELECT Userid, Email from tblWebUsers where Ftp = 0

Mvh

doggelitoMedlem sedan juni 20003 076 inlägg
#3

Tja, varför krångla! :) :bire

doggelitoMedlem sedan juni 20003 076 inlägg
#4

Det kanske kan vara kul att se vad jag var inne på, så här en fredag eftermiddag.
Dock så känns det som om jag var ganska nära! Fast ändå så helt fel ute! :)

declare @rows int
declare @loop int
declare @Userid int
declare @Email varchar(50)

select @rows = @@rowcount from tblWebUsers where Ftp = 0
select @loop = 1
while @loop <= @rows
	select @Userid = Userid, @Email = Email from tblWebUsers where @@rowcount = @loop
	insert into tblWebUsersEmail (Userid, Email) values (@Userid, @Email)
	select @loop = @loop+1
@ndersMedlem sedan juni 200032 969 inlägg
#5

Det hade säkert gått att få ihop det där också. Jag måste dock fortfarande tillstå att mitt exempel ovan är aningen mindre krångligt. ;)

Mvh

130 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)