首页 > 数据库 > Access > 正文

利用SQL的导入导出功能恢复损坏的ACCESS库

2020-10-03 20:16:40
字体:
来源:转载
供稿:网友

1.新建个ACCESS数据库

2.打开SQL server的企业管理器,数据库上右键所有任务选导入数据

来源数据选access 然后选择原来已经损坏的数据库

目的也选ACCESS 然后选择新建的数据库

下面就是下一步 完成这些了

完成之后打开db1.mdb 可以看到数据都在里面了
这时候还不能正常使用 因为默认值 还有自动递增类型都丢失了
需要按原来的数据结构修正过来

'---------------------------------

上文已经将全部数据都恢复出来了,但当你试图将ID的类型从数字改为自动递增的时候发现系统并不允许,这个麻烦了,是不是前面的都白做了呢?这个bug确实难住了我好一阵。

于是我发现了迂回的方法,以forum表为例,里面的ID应该为自动递增 posttime,lasttime的默认值应该是now(),ID字段在有数据的时候是不允许修改的,
下面就是俺刚刚独创的修复方法了,呵呵,打开FORUM表 全选 删除
然后保存后关闭表,在FORUM表上右键设计表,这时候可以修改ID的字段类型了,顺便把默认值也都改好。

也许你会问,现在改好有什么用啊,记录都被删除了,恩这时候我们再利用一下上文的SQL SERVER的导入到处功能,操作完全同上文。

呵呵,秘诀传授完毕,初步测试有效;这个方法比利用网上流传的修复工具要有效的多,只要了解数据库结构而且ACCESS库不是坏的无可救要救可以,现在你可以帮助别人修复数据库了 :)

后记:
将表的记录全部删除的时候 直接打开ACCESS 全选删除是可以的,但如果记录很多的情况下(比如reforum表)机器会死掉,所以比较好的方法是将数据库放在你的网站下,用asp来删除
先把数据库剪贴过去,修改conn.asp
写个asp文件

<!--#include file=conn.asp-->
<%
conn.execute("delete * from forum")
conn.execute("delete * from reforum")
conn.execute("delete * from [user]")
...................
%>


一共有20来个表,多复制几次:)

都完成后用ACCESS压缩修复下 ,好了你的数据库重生完毕 :)

'-------------------------------------

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表