我有一张包含一些记录的表,大约有40个,名为Table1。
我想在另一个表格中为每个记录创建一个新的注册表,但我不知道该怎么做。我想为每个记录迭代一个while循环,并在另一个表中插入记录,但我不知道如何(语法)。
我想要这样的事情:
foreach record in myTable1
Insert into Table2(IDTable1) VALUES(record.IDTable1)
end foreach
我不知道SQL Server中的脚本。
感谢。
答案 0 :(得分:3)
如果您只有插入,则可以执行此操作:
INSERT INTO Table2 (IDTable1)
SELECT IDTable1 FROM myTable1
它会从IDTable1
中选择所有myTable1
并将其插入Table2
。
答案 1 :(得分:2)
SQL Server在很大程度上是基于集合的。这意味着查询和行按组,组和按子句过滤。只有在极少数情况下,您希望或需要迭代结果集中的每一行并对其执行某些操作。
我说在您的情况下,您想要将一个表的内容复制到另一个表中。您可以通过多种方式实现这一目标,但最简单的方法之一就是:
SELECT
IDTable1
INTO
Table2
FROM
Table1
这假定Table2
不存在,并将创建它。如果Table2
已存在,您的语法将更改为与其他答案所示的相同:
INSERT INTO Tabel2( IDTable1 )
SELECT
IDTable1
FROM
Table1