Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得一个包含所有结果的变量并对其进行迭代?_Sql_Sql Server_While Loop - Fatal编程技术网

Sql 如何获得一个包含所有结果的变量并对其进行迭代?

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中的脚本 谢谢。如果您只有插入功

我有一张有一些记录的桌子,大约40张,叫做Table1

我想在另一个表中为这些记录创建一个新的寄存器,但我不知道如何才能做到这一点。我想对每条记录使用while循环进行迭代,并在另一个表中插入该记录,但我不知道如何(语法)

我想要这样的东西:

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中循环。您可以编写一个描述整个总体目标的查询,并让数据库系统确定如何最好地实现这一目标。