使用ms access 2003插入包含1个查询的多行时出现问题。当我使用INSERT INTO
时,如下面的代码
INSERT INTO Employee values ('1','b','c');
INSERT INTO Employee values ('2','d','e');
问题,ms访问总是会出现在SQL语句结束后找到的字符。那么,有没有办法将数据插入表中?
答案 0 :(得分:4)
使用Access SQL,您无法合并两个INSERT
语句。你可以分别运行它们。但是如果你需要用一个语句来完成它,你将需要使用更复杂的查询。
INSERT INTO Employee
SELECT '1','b','c'
FROM Dual
UNION ALL
SELECT '2','d','e'
FROM Dual;
Dual
是一个自定义表,旨在始终只包含一行。您可以使用this Stack Overflow answer中的说明创建自己的Dual
表。
但是,实际上并不需要用于此目的的自定义表。您可以使用任何只返回一行的表或查询,而不是Dual
。
答案 1 :(得分:1)
试试这个
INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )
INSERT INTO Employee values (('1','b','c'),('2','d','e'));
参考这里
答案 2 :(得分:0)
不幸的是,它看起来MS Access不兼容,只允许单个查询插入,除非您有源表。如果您可以将其挂钩到可以执行查询的工具,那么您可以创建一个循环来运行多个插入
答案 3 :(得分:0)
使用此确认工作查询:
INSERT INTO Product (Code,Name,IsActive,CreatedById,CreatedDate )
SELECT * FROM (
SELECT '10001000' AS Code,'Blackburn sunglasses' AS Name,1 AS IsActive,1 AS CreatedById,'2/20/2015 12:23:00 AM' AS CreatedDate FROM Product
UNION SELECT '10005200' AS Code,'30 panel football' AS Name,1 AS IsActive,1 AS CreatedById,'2/20/2015 12:23:09 AM' AS CreatedDate FROM Product
) ;
答案 4 :(得分:-1)
insert into animal (animal_id, name, species)
values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )
使用此示例