sql >> Base de Datos >  >> RDS >> Sqlserver

SQL LOOP INSERT basado en la lista de ID

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.