oracle 9及以上
"INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句"。后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT出来的内容插入前边的表里,而是起到前边的多个数据每次插入多少行的作用,这个多少行是和后边跟的SELECT语句查出来几条而定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO a表 VALUES(各个值1) INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就会先插入值1对应的各个字段插入15条记录,然后插入值2各个对应的字段15条记录,然后插入值3对应的各个字段15条记录。
我们要的是批量插入多个VALUES这样的一条记录,所以后边的SELECT 语句只要能查出一条记录就行,建议大家后边用SELECT 1 FROM DUAL。
sqlserver
可以批量插入另一个数据集的数据: insert xxx(id,name) select id,name from xxx
sql server 2008及以上版本
INSERT INTO BillInfo
(BillID
,BID
,IWtime
,Storage)
VALUES
('1',1,'2012-11-19',100)
,('2',1,'2012-11-19',100)
,('3',1,'2012-11-19',100)
,('4',1,'2012-11-19',100)
mysql
INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;
多个INSERT INTO VALUEES(各个值);这样以“;”隔开一同执行