如何使用MSAccess查询向表中添加多个记录

时间:2017-05-15 15:11:17

标签: sql ms-access

我试过这个

INSERT INTO Table_1(Col_1, Col_2, Col_3, Col_4,Col_5, Col_6)
VALUES('Value_1','Value_2','Value_3','Value_4','Date_1','Value_5'),('Value_1','Value_2','Value_3','Value_4','Date_1','Value_5');

但是它声明在句子末尾有一个缺少的分号

我也试过

INSERT INTO Table_1(Col_1, Col_2, Col_3, Col_4,Col_5, Col_6)
VALUES(('Value_1','Value_2','Value_3','Value_4','Date_1','Value_5'),('Value_1','Value_2','Value_3','Value_4','Date_1','Value_5'));

但我得到语法错误(逗号)

2 个答案:

答案 0 :(得分:0)

<强>答案

插入表1(Col_1,Col_2,Col_3,Col_4,Col_5,Col_6)

SELECT&#39; Value_1&#39;,&#39; Value_2&#39;,&#39; Value_3&#39;,&#39; Value_4&#39;,&#39; Date_1&#39;,& #39; VALUE_5&#39;

UNION

SELECT&#39; Value_1&#39;,&#39; Value_2&#39;,&#39; Value_3&#39;,&#39; Value_4&#39;,&#39; Date_1&#39;,& #39; VALUE_5&#39 ;;

答案 1 :(得分:0)

INSERT INTO T1 (C1,C2,C3) 
SELECT A,B,C FROM (
  SELECT 'A1' AS A,'B1' AS B,'C1' AS C FROM (SELECT COUNT(*) FROM MSysResources)   UNION
  SELECT 'A2','B2','C2' FROM (SELECT COUNT(*) FROM MSysResources) 
)

要知道的是,你需要一个有一行的表

**(SELECT COUNT(*) FROM MSysResources)**

所以你可以从这个单行表中选择每个常量值(你可以使用任何表,而不仅仅是MSysResources。通过使用count(*)你可以将它缩小到一行)

现在您可以将所有值放入此行:

SELECT 'A1' AS A,'B1' AS B,'C1' AS C, COUNT(*) AS COUNTED FROM (SELECT COUNT(*) FROM MSysResources)

这一行将包含3个常量值(和count-值,但不需要这样做)

通过使用 UNION ,您可以将多行放在一起。 并将其纳入表格

INSERT INTO my_table (COL1, COL2 ...) SELECT VAL1, VAL2, VAL3 FROM another_table 

你可以将comlete union-查询放在2个括号中,并将其用作another_table

也许有更好的方法来完成你的工作,这看起来很奇怪,但有效。