1

我有一张约 400,000 行的表。我正在尝试添加一个自动编号字段。当我尝试使用设计视图添加字段时,收到错误消息: File sharing lock count exceeded. Increase MaxLocksPerFile registry entry.

我不想进行永久注册表更改,所以我尝试了以下 VBA:

Sub addAuto()

DAO.DBEngine.SetOption dbMaxLocksPerFile, 1000000
CurrentDb.Execute "ALTER Table large_data add column rowID AUTOINCREMENT", dbFailOnError

End Sub

这给了我以下错误消息:

Run-time error '3035': System resource exceeded

我应该怎么做才能添加自动编号字段?

4

1 回答 1

2

large_data您可以通过在尝试添加rowID字段之前丢弃行来避免该错误。然后,您必须重新添加数据。

  1. 制作您的 db 文件的副本。
  2. 清空large_data( DELETE FROM large_data)
  3. 压缩数据库。
  4. 将自动编号字段添加到表的设计中。
  5. 链接到large_table数据库副本。
  6. 运行“追加查询”以将链接表中的数据添加到新版本的large_table.

就像是 ...

INSERT INTO large_table (
    fld1,
    fld2,
    fld3
    )
SELECT
    fld1,
    fld2,
    fld3
FROM linked_table;

包括除该rowID查询中的字段之外的所有字段的名称。db 引擎将处理自动编号值。

于 2013-04-23T18:48:14.710 回答