gpt4 book ai didi

sql - "Compact and repair"操作后 MS Access 查询出现问题

转载 作者:行者123 更新时间:2023-12-01 01:21:48 29 4
gpt4 key购买 nike

我有一个使用经典前端/后端方法的 Access 应用程序。昨天,由于我不知道的原因,后端被破坏了。于是我用Access 2003打开后台,access问我要不要修复文件,我说是,好像可以了。

我可以打开数据库查看表内容并运行大部分查询。

但是,有一个 Access 查询不适用于特定的 where 子句。

示例:

// This works in the original DB, but not in the compacted one :
SELECT a, b, c
FROM tbl1 INNER JOIN tbl2 ON tbl1.d = tbl2.d
WHERE e = 3 AND tbl2.f = 1;

// This works in both the original and the compacted one :
SELECT a, b, c
FROM tbl1 INNER JOIN tbl2 ON tbl1.d = tbl2.d
WHERE e = 3;

当我尝试运行查询时,没有任何反应。 Access 进程开始使用大部分 CPU,并且 GUI 停止响应。如果我从查询编辑器运行查询,我可以使用 Ctrl+Break 来停止执行。我试着给查询很多时间,但没有帮助。

我已经检查了 showplan.out 中的执行计划,它似乎是正确的(至少它不应该永远执行)

我再次尝试压缩数据库。我试图将表导入新数据库。我什至尝试将表及其数据导入到现在处于良好状态(来自备份)的 mdb 文件中。

有人有想法吗?

最佳答案

听起来索引已损坏,当发生这种情况时,它会在压缩过程中被删除。检查名为 MSysCompactErrors 的系统表——您必须在工具 | 中显示隐藏对象和/或系统对象。选项 |查看。

切勿在未事先进行备份的情况下压缩 Jet MDB。由于该规则,COMPACT ON CLOSE 功能完全无用,因为它不可取消,因此您始终确保它在所有 MDB 中都已关闭。

关于sql - "Compact and repair"操作后 MS Access 查询出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/970228/

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