MS Access 插入多行

Posted

技术标签:

【中文标题】MS Access 插入多行【英文标题】:MS Access insert multiple rows 【发布时间】:2017-06-26 14:20:22 【问题描述】:

对于一个项目,我想使用查询将多行插入到表中。我发现了几个关于如何执行此操作的线程,例如this one,它们确实很有帮助,但我仍然无法弄清楚如何插入多行。

我目前拥有的 SQL 代码不会导致任何语法错误,但它只是不会插入任何行。

我要插入的表格如下所示:

create table SYT_ABRDAT
(
    id integer primary key not null,
    beginper integer,
    eindper integer,
    periode text,
    groep bit
)

我当前使用的查询(我把它缩短了):

insert into syt_abrdat (id, begindat, einddat, periode, groep) 
    select * 
    from
        (select top 1 
             "1" as id, "9999" as begindat, "9999" as einddat,
             "---" as periode, "1" as groep 
         from 
             onerow 
         union all
         select top 1 
             "2" as id, "9999" as begindat, "9999" as einddat,
             "XXX" as periode, "1" as groep 
         from 
             onerow
        )

解决方案:

我在表 onerow 中添加了一个空行,而不是用一些数据填充它。

这是必要的

【问题讨论】:

【参考方案1】:
INSERT INTO syt_abrdat (id,begindat,einddat,periode,groep) 
SELECT * FROM 
   (SELECT TOP 1 1 AS id, 9999 AS begindat, 9999 as einddat, '---' as periode, 'WAAR' as groep FROM onerow UNION ALL
    SELECT TOP 1 2 AS id, 9999 AS begindat, 9999 as einddat, 'XXX' as periode, 'WAAR' as groep FROM onerow)

评论:

对文字字符串值使用单引号 不要为文字数字使用引号 表 onerow 必须至少包含 1 条记录

【讨论】:

这通常可以在其他数据库中使用,但 ms 访问不允许多个插入语句。你可以用工会来欺骗这个。见:***.com/questions/62504/… @B.Termeer - 我错过了,谢谢。看着那个问题,您确定您引用的表 (onerow) 有 1 行吗?如果没有,那么这将是预期的结果(没有插入记录)。 感谢您的回复。我试过了,但仍然遇到添加零行的问题。我会检查表onerow。如果我添加一行我将发布一个行的表格结构 @B.Termeer - onerow的表结构无关紧要,只要表中有记录即可。 感谢您的回复。我添加了一个空行,而不是用至少一些东西填充它。

以上是关于MS Access 插入多行的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 中的多行插入语句

Access 将多行插入 SSMS

在 Access 2010 中使用一个插入语句插入多行

向表中插入多行 - Access

从文本框表单中将多行插入到单个表中 - Access 2010

将包含多个值的多行连接成 MS Access 中的单行