0

我有一个大约 400 万行的 Access 数据库表。我想要这样做以使用 MS Access 设计视图添加具有自动编号类型的列(字段)。但是当我尝试这样做时,访问会出错并说:“无法完成查询。查询的大小大于允许的最大大小(2 GB),或者没有足够的临时空间来执行此操作。”

我所拥有的是:

Column1    Column2   .   .   . 
-------    -------   

我想要的是:

Number   Column1    Column2  . . . 
------   -------    -------

到目前为止我尝试了什么:

  • 从注册表更改每个文件值的 maxLocks。
  • 使用 Access 压缩和修复数据库。

有没有什么办法解决这一问题?还是有其他方法可以做我想做的事情?

4

3 回答 3

1

尝试创建一个新表,然后将旧表中的所有内容推送到新表。最终你可以删除旧的并重命名新的。如果你有关系,你也需要处理它们。由于自动编号是一个新列,我想它还没有涉及到它们中的任何一个......

并且@jonathan 评论是正确的...如果您的应用程序中有提供程序,请移至 SQL Express 或 SQL 服务器(MS 世界)或 mySQL。

于 2011-11-26T21:18:35.330 回答
1

根据 OP 请求:

它告诉您您正在达到 Access 的最大功能。检查将数据库移动到其他地方,可能是 SQLServer 或 mySQL

于 2011-11-26T21:31:50.657 回答
0

良好的数据管理是任何数据库的关键,但对于访问而言更是如此,因为与专用数据库服务器相比,它确实具有大小/性能限制。

如果移动到专用服务器不是一种选择,您应该查看某种形式的非常大数据集的存档,例如移动超过 6 个月的数据(时间尺度将取决于您添加的数据量)

此外,查看请求似乎您可能希望添加自动编号字段以唯一标识您的记录,如果是这种情况,那么最好确保您在表时设置了唯一标识符(主键)首次创建。

除了所有这些,您暂时可以尝试以下方法:将您的数据库移动到具有大量可用空间的本地驱动器(如果还没有的话)。确保您在具有大量 RAM 和虚拟内存的机器上运行。对数据库执行压缩和修复,因为这可能会充分减小表的大小(这可能需要一段时间)。尝试再次添加您的自动编号列。

于 2011-11-26T23:52:55.103 回答