我正在使用MS Access2003。我想在MS Access中的“查询”中运行大量插入SQL语句。有没有简单(或确实有任何方法)做到这一点?
是的,没有。
您不能:
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”来确保不没有重复的表多于一行
但是再说一次,仅执行三个单独的插入语句可能会更容易,尤其是如果您已经在循环中构建事物(当然,执行插入操作的成本要大于编写代码的时间) 。