需要帮助使用循环在SQL中执行批量插入

时间:2014-03-07 20:41:58

标签: sql

首先,我应该事先说我不是一个非常强大的SQL人员,所以请保持温柔:)

我需要在特定的表中执行大约400次插入。我将用于这些插入的数据,我可以从运行不同表的SELECT语句中收集。我只需要该表中1列的数据。

所以,我希望有人可以帮我编写SQL,它基本上会从我的select中返回id的列表,并使用该列表在另一个表中进行大量插入。

在伪代码中,类似这样:

Select BankID from BankTable; - 这会返回300行

Insert Into AccountTable -- this will add all 300 rows into the 2nd table
Values
(BankID)

先谢谢你们......

3 个答案:

答案 0 :(得分:2)

很简单,你基本上说了。 : - )

INSERT Into AccountTable (BankId, SecondColumn) SELECT BankId,'XXX' as staticText FROM BankTable;

答案 1 :(得分:0)

可以在一个声明中完成:

Insert Into AccountTable (bankid)
Select BankID from BankTable

这假定AccountTable中的列也命名为bankid;如果没有,只需在括号中正确设置名称。

答案 2 :(得分:0)

请记住,如果select语句与表定义不完全匹配,则INSERT语句必须包含列。

INSERT AccountTable (BankID)
SELECT BankID
FROM BankTable

对于多列,只需包含列列表:

INSERT AccountTable (BankID, BankName)
SELECT BankID, BankName
FROM BankTable

如果列的数据类型不匹配(即整数字段不会使用字母字符等),您也会遇到类型转换问题,但是列不一定是必要的名称匹配。只需获得正确的列和类型的顺序,你应该是好的。