无法将新列添加到Access数据库

时间:2011-11-26 21:06:17

标签: database ms-access autonumber

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

我拥有的是:

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

我想要的是:

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

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

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

有什么方法可以解决这个问题吗?或者还有其他办法可以做我想做的事吗?

3 个答案:

答案 0 :(得分:1)

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

和@jonathan评论是正确的...如果您的应用程序中有提供者,请转到SQL Express或SQL服务器(MS world)或mySQL。

答案 1 :(得分:1)

每个OP请求:

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

答案 2 :(得分:0)

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

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

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

除此之外,您还可以尝试以下方法: 将数据库移动到具有足够可用空间的本地驱动器(如果尚未安装在本地驱动器上)。 确保您在具有大量RAM和虚拟内存的计算机上运行。 执行紧凑并修复数据库,因为这可能会充分减少表的大小(这可能需要一段时间)。 尝试再次添加自动编号列。

相关问题