10

我在使用 ms access 2003 插入带有 1 个查询的多行时遇到问题。当我INSERT INTO像下面的代码一样使用时

INSERT INTO Employee values ('1','b','c');
INSERT INTO Employee values ('2','d','e');  

问题,ms access总是出现sql语句结束后发现的popup characters。那么,有没有办法将数据插入到表中呢?

4

5 回答 5

4

使用 Access SQL,您不能组合两个INSERT语句。您可以分别运行它们中的每一个。但是,如果您需要使用单个语句来执行此操作,则需要使用更复杂的查询。

INSERT INTO Employee
SELECT '1','b','c'
FROM Dual
UNION ALL
SELECT '2','d','e'
FROM Dual;

Dual是一个设计为始终只包含一行的自定义表。您可以使用此 Stack Overflow 答案中的说明创建自己的Dual表。

但是,您实际上并不需要为此目的使用自定义表。Dual您可以使用仅返回一行的任何表或查询来代替。

于 2012-12-28T05:32:13.063 回答
1

尝试这个

INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

INSERT INTO Employee values (('1','b','c'),('2','d','e'));

参考这里

在 ms-access 表中插入多行的 SQL 代码

于 2012-12-28T05:16:53.430 回答
0

不幸的是,似乎 MS Access 不兼容,除非您有源表,否则只允许插入单个查询。如果您可以将其连接到可以执行查询的工具,那么您可以创建一个循环来运行多个插入

于 2012-12-28T05:46:45.437 回答
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

) ;
于 2015-02-19T19:50:31.167 回答
-1
insert into animal (animal_id, name, species)
values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )

使用这个例子

于 2012-12-28T05:18:19.743 回答