当前位置:  开发笔记 > 数据库 > 正文

有没有办法在ms-access查询中创建多个insert语句?

如何解决《有没有办法在ms-access查询中创建多个insert语句?》经验,为你挑选了1个好方法。

我正在使用MS Access 2003.我想在MS Access中的"查询"中运行大量插入SQL语句.有没有简单的(或实际上有任何方式)做到这一点?



1> BIBD..:

是的,不.

你做不到:

insert into foo (c1, c2, c3)
values ("v1a", "v2a", "v3a"),
       ("v1b", "v2b", "v3b"),
       ("v1c", "v2c", "v3c")

但你可以做到

insert into foo (c1, c2, c3)
    select (v1, v2, v3) from bar

如果您还没有表中的数据,那会给您带来什么?那么,你可以制作一个Select语句,它由许多Selects联合组成,带有硬编码结果.

INSERT INTO foo (f1, f2, f3)
    SELECT *
    FROM (select top 1 "b1a" AS f1, "b2a" AS f2, "b3a" AS f3 from onerow
    union all
    select top 1 "b1b" AS f1, "b2b" AS f2, "b3b" AS f3 from onerow
    union all 
    select top 1 "b1c" AS f1, "b2c" AS f2, "b3c" AS f3 from onerow)

注意:我还必须包含某种形式的虚拟表(例如,onerow)来欺骗访问允许联合(它必须至少有一行),并且你需要"前1"以确保你不要对于包含多行的表格,我会重复一遍

但话说回来,只做三个单独的插入语句可能会更容易,特别是如果你已经在循环中构建了东西(当然除非你的插入成本高于你编写代码的成本) .


非常有趣和描述性的答案.它肯定会帮助我做我正在做的事情
就是那样!只有一个提示:如果你有大约50个嵌套的`SELECT`语句,你必须以50或更少的组执行它们.我有1080行插入,我将它们分成48组.否则Access(我使用v.2010)将警告你"太复杂的查询"错误.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有