Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL LOOP INSERT Basierend auf der Liste der IDs

Das ist es, wonach Sie fragen.

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

Aber wenn das alles ist, was Sie in der Schleife tun werden, sollten Sie stattdessen die Antwort von Barry verwenden.