如何禁用Access 2003中的所有AutoNum

Dav*_*lle 0 ms-access

我有一个超出所有修复损坏的Access数据库(不要问我如何,它是一个客户端数据库).但是,我们可以使用.NET ODBC之类的代码访问数据.由于我们拥有数据库的干净副本,因此我们计划将所有数据从损坏的数据转移到新数据.

我们只有一个问题,那就是数据库包含自动注册和大量链接.当我们传输数据时,我们希望确保所有autonum id与之前完全相同.不过,我们最终会遇到更多问题.

有没有办法做到这一点 ?

谢谢

Dav*_*ton 8

许多人误解了Jet/ACE Autonumber字段.它实际上只是一个长整数字段,具有默认属性和一些特殊属性(例如非编辑性,每个表限制为一个).

没有什么可以阻止您简单地将现有值插入新的空表中.将保留自动编号值,因为在创建记录时,您提供了显式值,而不是依赖于默认值来填充字段.

唯一的问题是如果定义了引用完整性,在这种情况下,您必须按顺序执行附加,以便在子记录之前插入父记录,或者为插入删除RI,然后将其放回.

我可能会做后者,因为我的代码可以将关系从一个数据库复制到另一个数据库,所以我只是保留作为备份模板.

最后,您需要确定导致损坏的原因并解决该问题.否则,有一天你将不得不再次这样做.