有没有办法清空访问数据库并完全删除它上面的所有数据,就好像数据库以前从未使用过一样?

时间:2011-06-07 16:42:31

标签: .net database-design ms-access ms-access-2010

我的Microsoft Access数据库(.mdb)包含太多数据。当我通过代码或删除记录删除其中的数据时,数据将被完全删除。但是,数据库大小保持不变(即未减少),并且自动编号字段从删除记录之前保存的最后一个数字开始。我问是否有类似的方式(MySql中的空数据库),我可以通过它获得Just数据库方案,好像它是创建新的并且之前从未包含数据。感谢

2 个答案:

答案 0 :(得分:2)

您想要压缩并修复数据库。

具体取决于您使用的MS-Access版本,但在2010年,您可以在“数据库工具”功能区上找到它。

基本上,当你从MS-Access中删除记录时(很像硬盘上的文件),它并不会立即真正删除它。它只是将记录标记为已删除。当数据库需要写一个新记录时,它可能(如果空间大小正确)尝试在其中一个区域的顶部写入,而不是增加数据库的大小。

压缩和修复数据库,除其他外,从数据库中删除所有这些已删除的记录。

这导致了这个问题。你应该经常这样做吗?就像对硬盘进行碎片整理一样,不一定。有时删除数据库中的所有空格并降低性能(因为有些时候您有记录会定期更改大小并且我不再适合分配给它们的空间)。此外,紧凑和修复并非没有风险(我已经使用了一个正常运行的数据库并且无法修复它) - 所以首先进行备份是一个非常好的主意。

答案 1 :(得分:2)

@ CodeSlave的答案涵盖了问题的数据库大小部分。

您还询问了AutoNumber字段,如何让它返回到1. Allen Browne演示了如何遍历每个表并重置自动编号字段:

http://allenbrowne.com/ser-40.html