【问题标题】:How do I run SQL queries on MDB files?如何对 MDB 文件运行 SQL 查询?
【发布时间】:2010-08-16 13:35:03
【问题描述】:

我需要对大型 MDB 文件 (~30mb) 运行 UPDATE 查询,可以吗?怎么样?

【问题讨论】:

  • 有很多方法可以做到这一点,你选择哪一种取决于你想从哪里运行它们?访问用户界面? .net 应用程序?一个网络应用程序?其他类型的应用程序?请扩展您的问题。
  • 30mb 不是很大的 mdb。
  • 使用查询设计窗口构建您的查询。
  • 删除、插入和更新的语法和我在 MySQL 上使用的语法一样吗?
  • 不完全是,例如你不使用反引号,但是 sql 将由设计器生成。对于更复杂的查询,您可以使用 SQL 视图,您的 MySQL 知识将有所帮助。

标签: sql database ms-access


【解决方案1】:

正如 Remou 所说,使用查询设计器。

进入后,您可以随意拖放。

如果你真的想直接输入 SQL,你可以。您可以从设计视图切换到 SQL 视图并手动输入。

SQL 在 MS Access 上是相当标准的。其他 DB 上的某些内容您会认为是标准的一部分,但实际上并非如此,并且已经在 MS Access 方面实现了。在 MS Access 上,通配符可能与您预期的不同。 .mdb 和 .accdb 的默认值为“*”(ANSI-89),但也可能是“%”,因为您正在使用 ANSI-92 SQL(由 .adp 使用 - 访问数据项目)。 As a rule, you use the ANSI-89 wildcards when you run queries and find-and-replace operations against Access databases — .mdb and .accdb files. You use the ANSI-92 wildcards when you run queries against Access projects — Access files connected to Microsoft SQL Server databases.

您可能还习惯于在 MySQL 中嵌套查询。其中一些你不能在 MS Access 中做同样的事情 - 你已经做了一些有趣的解决方法来获得相同的效果。否则,它非常接近。这也可能与 ANSI-89 SQL 和 ANSI-92 SQL(及更高版本)之间的差异有关。

【讨论】:

  • 它并不总是星号,它可以是百分比,这取决于您设置数据库使用的 SQL 版本。创建嵌套查询没有问题,您通常可以在 SQL 视图中设置它们后,在设计视图中查看它们。
  • 你说得对...... MS似乎已将.adp的通配符更改为%(与.mdb相比-感谢#$%@#$%#$很多,还有一个原因不将任何内容升级到新版本)。经过进一步测试,我可以做 select * from (select * from bar); 以前不工作(万岁),但我仍然不能做 SELECT bar.* FROM bar where f1 in (select b1 from foo); 工作在其他数据库上。
  • 根据反馈调整答案。
  • 您混淆了通配符问题。这不是“* for mdb”。对 MDB 使用 ANSI-92 模式的任何操作都需要 % 和 _ 而不是 * 和 ?。见office.microsoft.com/en-us/access-help/…
  • 更好。任何 Access db 格式的 ADO 操作仍然需要 ANSI-92 通配符……不管它是否是 MDB 以及数据库属性是否已设置为 ANSI 89 或 92(“SQL Server 兼容语法”)。这也适用于 A2007。关于 ADO 和通配符的困惑似乎困扰了很多人。请注意你对我母亲的暗示! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
相关资源
最近更新 更多