访问:临时磁盘错误空间不足

Ric*_*ick 7 ms-access

我收到以下错误:

"临时磁盘上没有足够的空间.(错误3183)"
"您尝试执行的操作需要比临时磁盘上可用空间更多的空间.您的临时磁盘位置基于TEMP DOS环境变量,该变量是在您设置的时候设置的.系统启动."

我使用Access 2007作为前端.数据库位于SQL Server 2008上.当我使用一个表单时,会发生这种情况,它的记录源是一个SQL查询,并使用导航控件转到特定记录.该表有大约五十万条记录.我在XP SP3上有4GB RAM,有1 GB免费.

BIB*_*IBD 9

您最有可能在MS Access表上遇到2GB限制.可能在查询期间创建/使用的临时表中.

这可能是由查询中的任何连接引起的,这些连接往往会使数据倍增.并且有一百万行,您所要做的就是将每行2K的数据加倍,达到该限制)

您可以通过几种方式解决此问题.

  • 您可以将where子句中的最大限制器移动到最后(我记得,SQL是从下到上执行的).
  • 您可以简化查询
  • 您可以将查询分解为子查询,每个子查询都有自己的where子句,然后对结果进行连接.

您也可以强制查询在SQL Server端运行; 我认为默认情况下会发生这种情况,但是可以通过低效查询来阻止(例如,调用在where子句中返回varchar的函数)