Esto es lo que estás pidiendo.
declare @IDList table (ID int)
insert into @IDList
SELECT id
FROM table1
WHERE idType = 1
declare @i int
select @i = min(ID) from @IDList
while @i is not null
begin
INSERT INTO table2(col1,col2,col3)
SELECT col1, col2, col3
FROM table1
WHERE col1 = @i AND idType = 1
select @i = min(ID) from @IDList where ID > @i
end
Pero si esto es todo lo que vas a hacer en el bucle, deberías usar la respuesta de Barry en su lugar.