当前位置: 首页 > 面试题库 >

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

顾骏祥
2023-03-14
问题内容

我正在使用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”来确保不没有重复的表多于一行

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



 类似资料:
  • 问题内容: 我在MS Access的VBA中执行了多个SQL存储过程(例如UPDATE,SELECT INTO语句): CurrentDb.Execute“ qry1” CurrentDb.Execute“ qry2” 我希望这样做: 如果qry2失败,它将撤消qry1。 qry1和qry2是同时执行的(因为我有许多存储过程是在链中执行的),因此该过程运行得更快。 如何才能做到这一点? 问题答案:

  • 主要内容:创建一个更新查询,创建一个删除查询,创建一个建表查询在本章中让我们来了解如何创建查询。 创建一个更新查询 可以使用更新查询更改表中的数据,并且可以使用更新查询来输入条件以指定应更新哪些行。 在执行更新之前,更新查询提供了一个查看更新数据的机会。 让我们再次转到“创建”选项卡,然后单击“查询设计”。 在“表”选项卡的“显示表”对话框中,双击表,然后关闭对话框。 在“设计”选项卡的“查询类型”组中,单击“更新”并双击要更新值的字段。假设要将员工编号为:

  • 问题内容: 我只想获取一个表“ b”的值,如果表“ a”的值是“-”如果表“ b”的值是空的,那么即使它是“-”,也要获取表“ a”的值 Microsoft Access对以下查询说“ Missing operator”: 我认为该错误是在CASE表达式行上。 问题答案: MS Access不支持语句。用途: 我不确定Access是否支持别名,但是它可能支持 注意(尽管标签正确),问题的标题可能会

  • 问题内容: 这合法吗? 问题答案: 对于它的价值,并取决于是否将相同的数据插入到相同的表中,最好用一个插入插入多个值, 例如

  • 问题内容: 任务: 我正在将数据库从MS Access迁移到Maximizer。为此,我必须在MS ACCESS中获取64个表并将它们合并为一个表。输出必须为TAB或CSV文件的形式。然后将其导入到Maximizer中。 问题: Access无法执行看起来如此复杂的查询,因为每次运行查询时它都会崩溃。 替代方案: 我已经考虑了一些替代方案,并希望在其中选择最耗时的方案,同时还要利用任何机会学习新知

  • 问题内容: 我不断收到CREATE TABLE语法错误,但是看不到错误!是什么导致错误? 我的SQL: 问题答案: 由于您的DDL语句包括,因此您必须使用ADO执行它。我将您的语句加载到字符串变量中,然后从Access 2007中执行该语句,如下所示: 的 工资 字段是小数精度8,尺度2和默认15000。 是Jet 4.0附带的Access SQL功能之一。这些功能不适用于从DAO执行的语句。如果