Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL LOOP INSERT Въз основа на списък с идентификатори

Това е, което питате.

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

Но ако това е всичко, което ще правите в цикъла, наистина трябва да използвате отговора от Бари вместо това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Скрипт за изтриване на всички несистемни обекти в SQL Server 2008

  2. Може ли INNER JOIN да предложи по-добра производителност от EXISTS

  3. Нарушаване на ограничението PRIMARY KEY

  4. MVC4:UserIsInRole - Не може да се свърже с база данни на SQL Server

  5. синтаксис за единичен ред MERGE / upsert в SQL Server