Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL LOOP INSERT basé sur la liste des ID

C'est ce que vous demandez.

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

Mais si c'est tout ce que vous allez faire dans la boucle, vous devriez vraiment utiliser la réponse de Barry à la place.