今天在把一个MSSQL数据库转为ACCESS发现了一些问题:
在MSSQL表格中的一个(标识)递增字段转到ACCESS后,变成了 “数字”类型,而不是“自动编号”。
而当在Access中,一个字段类型定义为“数字”,同时已存在记录的时候,这个字段无法再修改为“自动编号”。
当时没办法,只好先把所有的表中所有的记录全删除,然后一个一个修改字段ID的类型为“自动编号”。
修改好后,再执行一次从MSSQL数据导出到Access。
这个时候,表面上看数据导入成功。
但在接下来的Access记录增加时,发生错误:“自动编号的字段不能出现重复记录。”
怎么会这样呢?
我检查了一下,原来在MSSQL的people表中有这样的一些记录:
id name ....
------------------------
1 张三
3 李四
4 王五
说明这个表中有些记录被删除了。
当我把数据导入到Access后,再对这个Access新增一条记录后,得到的id(自动编号)竟然是 4
也就是讲,从MSSQL导出数据到ACCESS的时候,就算我按照之前的操作,把“自动编号”类型的数据导入到Access中后,还是存在这个递增(因数)问题。
最后我也找到了一个比较简单的解决方案:
我又新建了一个Access数据库,然后把原来的Access中的每一个表点右键,导出到这个新建的Access数据库中。
然后再对这个新建成的Access数据库进行增加记录的时候,就成功增加了,正常了。
2011-03-09