作者:北京雅舍 | 来源:互联网 | 2023-05-18 17:36
我想把access数据库导入到sql的时候,怎么能把access数据库中原来的自动增长字段ID也同时复制到新的sql数据库中呢,也就是要达到复制到SQL数据库中的ID都要是原来ACCESS中的ID
我想把access数据库导入到sql的时候,怎么能把access数据库中原来的自动增长字段ID 也同时复制到新的sql数据库中呢,也就是要达到复制到SQL数据库中的ID 都要是原来ACCESS中的ID, 要求一致,请问有什么办法可以做到呢? 这样做的原因主要是因为网站程序是自动生成的静态,并且他调用了自动增长字段ID的数据,所以一定要一致,要不然转换后我还要重新生成下网站 非常麻烦,另外我还想要保持原来数据库中的数据排序也一致如何做到呢?
10 个解决方案
想问下,必须用查询分析器复制数据吗?不能设置自动导入的时候完成吗?
用DTS导入时,系统自动会为你指定“启用标识插入”选项。
前提,确保你的目标表中的自动编号列已经初始化过。
请问初始化过是什么意思?是不是我必须实现把自动ID列用 查询分析器先把acc数据库中的数据复制过来,然后在用DTS依次导入剩下自段的数据?
其实你可以先不处理初始化。
直接在企业管理器中用DTS导入数据,对于Access中的自动编号列,DTS中已默认“启用标识插入”选项。
access的 counter 列跟sql的identity列不一样. 虽然都是用来做标识的.
我以前实践过, 用DTS导入,钩选"启用标识插入" 并不会把导入的列转为 identity列. 而钩不钩选这个项,导入的列值是与access的counter列值一样的.
必须在导入后,自己手工改表,才能让列成为identity列.
或者就用2楼的做法,用语句, 使用openrowset之类的语句. 读出来插入到sql表. 导入前用 set identity_insert 表名 on
而后用 set identity_insert 表名 off
用DTS的方法可以实现。
先把表结构创建好,设置标识列,直接用DTS把Access中的自动编号列,可以导入到SQL Server表中的标识列中。
e,你的意思是先建表, 也就是说导入后,还是要手工改列的identity属性了, 那跟我说的一个意思,都是要先identity列存在.
直接导入并建表想得到identity列是不行的.
刚才我理解错你的意思了,不好意思.