这个数据库显然真的很大?

时间:2014-08-01 11:59:36

标签: sql database ms-access ms-access-2010

首先,我必须为过去几天给出Access标记的攻击道歉。它不像MS-SQL :(

好的,我有一个包含3,500条记录的小工作台。我试图将它们修剪到需要修改的特定集合以适合我们的迁移应用程序。

我从

开始
SELECT tempMainTab.*
FROM tempMainTab INNER JOIN tempCritTab 
ON tempMainTab.[LINK] <> tempCritTab.[LINK]

哪个好,对吧? (右?)

但当然,第一次没有任何作品:

  

无法完成查询。要么是查询的大小   结果大于数据库的最大大小(2GB)或没有   磁盘上有足够的临时存储空间来存储查询结果。

所以,我关闭了我打开的tempCritTab的现有窗口,然后再次尝试。

都能跟得上:

  

Access无法读取表格。该表可能已损坏或可能不存在。

(或类似的东西)

所以,我尝试了Compact / Repair工具。这似乎有用...有点。
现在,而不是预期的1,200行,我得到 7,125,920 行!?
现在我只是尝试再次运行查询。没有骰子 - 与第一个相同的错误。

我哪里出错?

1 个答案:

答案 0 :(得分:5)

我的猜测是你真的想要:

SELECT tempMainTab.*
FROM tempMainTab LEFT JOIN
     tempCritTab 
     ON tempMainTab.[LINK] = tempCritTab.[LINK]
WHERE tempCritTab.[LINK] IS NULL;

这会使主表中的行不在暴击表中 - 如果你想要反过来那么反转顺序。

您的版本基本上会生成两个表的笛卡尔积。