我发现Access不允许Insert Into查询多个记录,除非使用一行表中的Select查询。尽管如此,它还不起作用,我不确定我错过了什么。
我试图插入tblTarget
,其中包含3个字段:ID,F1,F2(分别是自动编号,编号,编号)。
我创建了一个表onerow
。我不确定应该如何创建它,所以它现在有以下字段:ID,F1,F2(目标表的相同字段),只有一行(空行,ID除外)。请注意,我还没有将表格编程为仅允许一行,目前只有一行。
查询:
INSERT INTO tblTarget (F1, F2)
SELECT * FROM (
SELECT '31','3' FROM onerow
UNION ALL
SELECT '31','2' FROM onerow);
我收到错误:" Insert Into语句包含以下未知字段名称:' Expr1000'。确保您输入正确,然后再次尝试操作。
我的直觉说问题在于onerow
表,但我无法找出解决方案。
答案 0 :(得分:2)
这适用于Access 2010:
INSERT INTO tblTarget (F1, F2)
SELECT *
FROM
(
SELECT 31 AS F1, 3 AS F2 FROM onerow
UNION ALL
SELECT 31, 2 FROM onerow
)
诀窍是在第一个UNION-ed查询中指定字段名称,以便名称与INSERT子句中的名称相匹配。
答案 1 :(得分:0)
尝试这样:
Insert into UserData(UserName,Password)
Select 'user1','abc'
Union All
Select 'user2','abc'