1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

Access转Sql server解决自动编号问题

本帖由 jim.ma2006-01-30 发布。版面名称:后端开发

  1. jim.ma

    jim.ma New Member

    注册:
    2005-10-01
    帖子:
    7
    赞:
    0
    可能有更好更简单的办法不过我这没资料也没书再加上水平比较菜...
    我这做法主要方便不太懂技术的朋友用,高手拍砖小弟也多多学习...
    SQL SERVER 2000 内创建演示数据库 test
    C:\DB1.MDB 内有一表,表明abc,内有字段3个:id自动编号、sss文本、ddd文本。

    1 打开 “企业管理器” 选择要导入的数据库。
    [​IMG]

    下面
    2 导入/导出向导,因为这次是导入所以数据源类型选“Microsoft Access”,选择你的MDB文件。我的演示文件在c:\db1.mdb
    [​IMG]

    3 选择目的,为你的目的数据库,我的演示数据库名为 test。
    [​IMG]

    4 下面4步看图就行了,我就不多说了也没什么可讲的。
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    直接导入到SQL的test库中表名仍然是abc

    5 生成SQL脚本
    [​IMG]
    [​IMG]
    关于“设置格式”和“选项”标签根绝个人数据库结构不同自行勾选,我就不多说了不然要把索引触发器什么的都搬上了....

    6 在“查询分析器”中打开刚刚生成的脚本。
    [​IMG]
    兰色圈住的地方提醒大家注意,因为ACCESS导入SQL自动将LONG类型和自动编号转成INT了但是没有IDENTITY。 这里我们要手工加上。 IDENTITY(1,1) 意思是从1开始每次自增1其实就是自动编号了。
    [​IMG]
    如此修改完毕,在TEST中重新执行当前脚本将覆盖现有已经存在的abc表。执行成功后我们能在下面的框中看到完成的提示。
    [​IMG]

    7 可能有朋友说你这上面不是导入只是要脚本啊。对拉如果脚本少手写可能会快点,但是表多又没有SQL脚本的前提下,这样的修改SQL脚本总比全打出来快的多。错误也少^^。
    接下来要做的就是重新将ACCESS的数据再导入一次。因为已经有了IDENTITY 属性的基表了。这次不会再出问题了。导入步骤同1 - 4就可以了。

    8 导入完成后,我们看看是否正如我们所愿。为证明自动编号排列正确不是重排我在导前删掉了几行。对比一下。
    [​IMG]
    [​IMG]
    OK 一切正常,恭喜您。

    注:只是在导入时修改建表脚本不行,会导致编号重排这个和我上一次写的SQL转ACCESS不太一样。

    相关文章:
    Sql server转Access解决自动编号问题 http://www.itfly.com/blog/article.asp?id=136