我在使用 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。那么,有没有办法将数据插入到表中呢?
我在使用 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。那么,有没有办法将数据插入到表中呢?
使用 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
您可以使用仅返回一行的任何表或查询来代替。
尝试这个
INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )
INSERT INTO Employee values (('1','b','c'),('2','d','e'));
参考这里
不幸的是,似乎 MS Access 不兼容,除非您有源表,否则只允许插入单个查询。如果您可以将其连接到可以执行查询的工具,那么您可以创建一个循环来运行多个插入
使用此确认工作查询:
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
) ;
insert into animal (animal_id, name, species)
values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )
使用这个例子