不能向Access数据库添加新列



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

我有的是:

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

我想要的是:

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

我试过了:

  • 从注册表中更改maxLocks值。
  • 数据库的压缩与修复。

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

每个OP请求:

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

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

和@jonathan的评论是对的…移动到SQL Express或SQL server (MS world)或mySQL,如果你有从你的应用程序提供它。

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

如果不能将大型数据集移动到专用服务器,你应该考虑某种形式的归档,例如移动超过6个月的数据(时间尺度取决于你添加的数据量)

另外,查看请求,似乎您可能想要添加自动编号字段来唯一地标识您的记录,如果是这种情况,那么确保在第一次创建表时设置您的唯一标识符(主键)是良好的实践。

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

相关内容

  • 没有找到相关文章

最新更新