在单个SQL语句中插入列表中的值

时间:2014-08-20 20:58:28

标签: sql vb6 sql-insert

我有一个包含值的列表。我想使用单个INSERT语句在SQL表中插入这些值。

示例:说,有一个包含名称的列表(列表的大小不是常量)。有一个STUDENTS表,其中包含NAME列。我想使用单个STUDENTS语句在INSERT表中插入列表中的名称。

现在我遍历列表并在表中插入值。这意味着,insert语句的数量等于列表的长度。

List<String> Name;
foreach (String s in Name)
{
  INSERT INTO STUDENTS (NAME) VALUES (s)
}

有没有办法可以在单个SQL INSERT语句中完成此操作?非常感谢任何帮助。

4 个答案:

答案 0 :(得分:5)

在MySql中你可以这样做

INSERT INTO tbl (f1,f2) VALUES(1,2),(3,4),(5,6)...(55,77);

对于mssql方言都是一样的

答案 1 :(得分:0)

Union可以用来实现这一目标,尽管技术上每个联盟都是它自己的声明。

简短演示:

create table #i(hello int)
insert into #i select 1 union all select 2
select * from #i
drop table #i

还有其他/更好的方法可以从列表中填充表格......这取决于您所使用的数据库。

答案 2 :(得分:0)

要使用单个INSERT执行此操作,请使用SELECT ..您必须将列表转换为:

INSERT STUDENTS(NAME)
SELECT 'Tom'
UNION ALL
SELECT 'Bill'
UNION ALL
SELECT 'Sarah'

答案 3 :(得分:0)

如果您的列表位于临时表中,则可以使用以下语法:

insert into tblname
    (columnlist)
select name from temptable;