Sql 使用1个查询插入多行

Sql 使用1个查询插入多行,sql,ms-access,ms-access-2003,Sql,Ms Access,Ms Access 2003,我在使用ms access 2003以1个查询插入多行时遇到问题。当我使用插入到中时,如下面的代码所示 INSERT INTO Employee values ('1','b','c'); INSERT INTO Employee values ('2','d','e'); 问题是,ms access总是在SQL语句结束后弹出字符。那么,有没有办法将数据插入表中?试试这个 INSERT INTO Table ( Column1, Column2 ) VALUES ( Value1, Val

我在使用ms access 2003以1个查询插入多行时遇到问题。当我使用
插入到
中时,如下面的代码所示

INSERT INTO Employee values ('1','b','c');
INSERT INTO Employee values ('2','d','e');  
问题是,ms access总是在SQL语句结束后弹出字符。那么,有没有办法将数据插入表中?

试试这个

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

INSERT INTO Employee values (('1','b','c'),('2','d','e'));
参考这里


在Access SQL中使用此示例,您不能将两个
INSERT
语句组合在一起。您可以分别运行它们。但如果需要使用一条语句,则需要使用更复杂的查询

INSERT INTO Employee
SELECT '1','b','c'
FROM Dual
UNION ALL
SELECT '2','d','e'
FROM Dual;
Dual
是一个自定义表,设计为始终只包含一行。您可以使用中的说明创建自己的
Dual


但是,您实际上并不需要为此目的定制表。您可以使用任何只返回一行的表或查询,而不是双表。

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

使用此确认工作查询:

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

) ;

我使用这个方法,但是在SQL语句的末尾仍然会出现一个弹出窗口“缺少分号(;)”。最后添加一个分号@FenediW
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

) ;