Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL LOOP INSERT com base na lista de IDs


Isto é o que você está pedindo.
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

Mas se isso é tudo o que você vai fazer no loop, você deve realmente usar a resposta de Barry.