在SQL中使用什么而不是"Foreach"循环

Hug*_*ron 2 sql stored-procedures

我正在尝试在SQL中编写一个存储过程:

从table1进行选择查询将返回多个值在table2中插入新值(table2中的1个新记录,用于table1上的select返回的每个记录).

我会在C#中使用foreach,但我知道SQL不会那样工作.这样做的正确方法是什么?

谢谢!

Dav*_*und 9

INSERT INTO tabl2 (name, id)
   SELECT name, id FROM table1
Run Code Online (Sandbox Code Playgroud)

编辑

我应该补充一点,循环在SQL中确实非常有用,所以你可能也想知道如何做到这一点.这是一个例子:

DECLARE @temp TABLE (ix int identity(1,1), id int, name varchar(100))

INSERT INTO @temp SELECT id, name FROM table1

DECLARE @i int, @max int

SELECT
   @i = 0
   @max = MAX(ix)
FROM
   @temp

WHILE @i < @max
BEGIN
   SET @i = @i + 1

   -- LOGIC HERE...

END
Run Code Online (Sandbox Code Playgroud)