gpt4 book ai didi

ms-access - 确保 Access 2000 mdb 上的 SQL-92 到 Access 2010 下的 SQL Server

转载 作者:行者123 更新时间:2023-12-03 18:42:47 25 4
gpt4 key购买 nike

由于我无法完全控制的情况,我必须开发 ACCESS 查询,这些查询将存储在 Access 2000 MDB 中,但可以在以下任何一种下开发:Access 2000、2002、2003、2007、2010。这些查询将 Access (通过链接表)MS SQL Server DB 或 Access 2000 .MDB 文件。

过去,我们遇到了问题,我们可以追溯到与 ANSI-92 不兼容的查询。我们通过在工具|选项对话框的表/查询选项卡中标记复选框来解决这个问题(在比 2007 更旧的 Access 版本下)。

我们在各种系统之间移动这些 Access 应用程序 .MDB,现在我们通常没有任何问题。

但是,我刚刚开发了一个适用于所有内部连接的查询,但是当我将其中一个连接更改为外部连接时,查询失败并在 Access 2010 下出现“无效操作”错误。所以我想我会检查 ANSI-92 复选框是否仍被设置。我找不到。

现在,我知道 Access 2003 及更高版本会自动使用 ANSI 92 语法,但我想知道是否有任何方法可以检查在这种情况下(而是在特定情况下)这些查询的情况。我观察到当我们更改复选框时,我所有的“Like”查询都变成了“Alike”查询......

所以问题归结为 ANSI 92 语法在这种情况下是完全透明的,而我的查询失败的原因是别的……

TIA,
保罗

最佳答案

在 Access 2010 中,SQL Server 语法兼容性设置位于:

File > Options > Object Designers > Query Design.



您首先需要检查是否设置了该选项,以确认您的查询行为是否正常。

至于 LIKE对比 ALIKE ,后者将以 ANSI 方式工作,使用 %_模式匹配。
在 SQL-89 兼容模式(MS Access SQL 子集)中,LIKE 仅适用于 *?模式,但如果你改变了对 SQL-92 的兼容性,你需要用 % 重写你的查询。和 _反而。

这就是为什么 ALIKE引入后,它允许您编写符合 ANSI 的模式,而不管您选择的兼容性级别如何(因此在 SQL-92 兼容模式下,两者的行为都相同)。

关于ms-access - 确保 Access 2000 mdb 上的 SQL-92 到 Access 2010 下的 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com