Sql 如何获得一个包含所有结果的变量并对其进行迭代?
我有一张有一些记录的桌子,大约40张,叫做Table1 我想在另一个表中为这些记录创建一个新的寄存器,但我不知道如何才能做到这一点。我想对每条记录使用while循环进行迭代,并在另一个表中插入该记录,但我不知道如何(语法) 我想要这样的东西:Sql 如何获得一个包含所有结果的变量并对其进行迭代?,sql,sql-server,while-loop,Sql,Sql Server,While Loop,我有一张有一些记录的桌子,大约40张,叫做Table1 我想在另一个表中为这些记录创建一个新的寄存器,但我不知道如何才能做到这一点。我想对每条记录使用while循环进行迭代,并在另一个表中插入该记录,但我不知道如何(语法) 我想要这样的东西: foreach record in myTable1 Insert into Table2(IDTable1) VALUES(record.IDTable1) end foreach 我不知道SQL Server中的脚本 谢谢。如果您只有插入功
foreach record in myTable1
Insert into Table2(IDTable1) VALUES(record.IDTable1)
end foreach
我不知道SQL Server中的脚本
谢谢。如果您只有插入功能,您可以执行以下操作:
INSERT INTO Table2 (IDTable1)
SELECT IDTable1 FROM myTable1
它将从
myTable1
中选择所有IDTable1
,并将它们插入Table2
如果您只有插入功能,则可以执行以下操作:
INSERT INTO Table2 (IDTable1)
SELECT IDTable1 FROM myTable1
它将从
myTable1
中选择所有IDTable1
,并将它们插入Table2
SQL Server在很大程度上是基于设置的。这意味着查询和行是按集合、分组和子句过滤的。只有在极少数情况下,您才会希望或需要迭代结果集中的每一行并对其进行处理
我想说的是,在您的情况下,您需要将一个表的内容复制到另一个表。您可以通过多种方式实现这一点,但最简单的方法之一是:
foreach record in myTable1
Insert into Table2(IDTable1) VALUES(record.IDTable1)
end foreach
选择
ID1表1
进入
表2
从…起
表1
这假定表2
不存在,并将创建它。如果表2
已经存在,您的语法将更改为与其他答案所示的相同:
插入到表2中(IDTable1)
挑选
ID1表1
从…起
表1
SQL Server在很大程度上是基于设置的。这意味着查询和行是按集合、分组和子句过滤的。只有在极少数情况下,您才会希望或需要迭代结果集中的每一行并对其进行处理
我想说的是,在您的情况下,您需要将一个表的内容复制到另一个表。您可以通过多种方式实现这一点,但最简单的方法之一是:
foreach record in myTable1
Insert into Table2(IDTable1) VALUES(record.IDTable1)
end foreach
选择
ID1表1
进入
表2
从…起
表1
这假定表2
不存在,并将创建它。如果表2
已经存在,您的语法将更改为与其他答案所示的相同:
插入到表2中(IDTable1)
挑选
ID1表1
从…起
表1
下面是插入到表2(IDTable1)的示例。从MyTable1中选择IDTable1对任何数据库来说,对游标进行迭代都是最糟糕的性能杀手。您几乎总是可以创建一个INSERT。。。从执行相同任务的
语句中,仅在1/1000的时间内(至少)。您不会(通常/如果可以避免)在SQL中循环。您可以编写一个描述整个总体目标的查询,并让数据库系统确定如何最好地做到这一点。下面是示例INSERT INTO Table2(IDTable1)从MyTable1中选择IDTable1对任何数据库来说,对游标进行迭代都是最差的性能杀手。您几乎总是可以创建一个INSERT。。。从执行相同任务的
语句中,仅在1/1000的时间内(至少)。您不会(通常/如果可以避免)在SQL中循环。您可以编写一个描述整个总体目标的查询,并让数据库系统确定如何最好地实现这一目标。