一尘不染

有什么方法可以在ms-access查询中创建多个insert语句?

ms

我正在使用MS Access2003。我想在MS Access中的“查询”中运行大量插入SQL语句。有没有简单(或确实有任何方法)做到这一点?


阅读 304

收藏
2021-04-15

共1个答案

一尘不染

是的,没有。

您不能:

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联合组成的Select语句。

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),以愚弄访问权限以允许联合(联合中必须至少有一行),并且您需要“ top 1”来确保不没有重复的表多于一行

但是再说一次,仅执行三个单独的插入语句可能会更容易,尤其是如果您已经在循环中构建事物(当然,执行插入操作的成本要大于编写代码的时间) 。

2021-04-15