Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

CHÈN LOOP SQL Dựa trên Danh sách ID của

Đây là những gì bạn đang yêu cầu.

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

Nhưng nếu đây là tất cả những gì bạn sẽ làm trong vòng lặp, bạn thực sự nên sử dụng câu trả lời từ Barry để thay thế.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng mệnh đề OUTPUT để chèn giá trị không có trong INSERTED

  2. Chúng ta có thể gọi một proc được lưu trữ từ một hàm không?

  3. Cách tổng hợp các tài khoản

  4. Cách hiển thị đối chiếu của cơ sở dữ liệu trong SQL Server (T-SQL)

  5. Gợi ý khóa bảng mặc định trên SQL Server 2005/2008