=波波日志 > SQL及数据库 > access数据库导入mssqlserver保留自动增长列=

access数据库导入mssqlserver保留自动增长列

  access数据库在导入mssqlserver的时候,如果没有增加一些特别的设置,access中的自动增长列不会在导入mssqlserver的时候保留下来。要保留access自动增长列,有2种办法。
1)使用access的数据库升迁向导。【推荐此方法】
2)建立好数据库,导入表【不推荐,极其繁琐】
示例access数据库Test结构如下图
access数据库test表结构.gif

1)使用access的数据库升迁向导 操作过程如下列图片所示
access升迁向导.gif
新建数据库.gif
指定数据库名和链接到mssqlserver的信息.gif
选择要导入到mssqlserver的表.gif
升迁表属性.gif
不对应用程序做任何更改.gif
设置完毕,点击“完成”进行升迁.gif
升级到mssqlserver.gif

操作完毕后,打开mssqlserver企业管理器,看到已经导入一个TestSQL的数据库,并且导入的Test表的ID字段已经为标识列。
id列变为标识列.gif


2)建立好数据库,导入表【不推荐,极其繁琐】
所有任务-导入数据.gif
按照步骤操作,选择源数据为Microsoft Access,同时选择access文件。点击下一步直到“选择源表和视图”步骤。
选择一个表,然后点击“转换”,在“列映射和转换”窗口中选择原来是自动增长的列,然后点击“编辑SQL(S)...”,可以看到如下sql语句
+展开
-SQL
CREATE TABLE [test].[dbo].[test] (
[id] int NOT NULL
[myname] nvarchar (50) NULL
)

dts导入导出-编辑sql语句.gif

如果不进行设置,这样导入到mssqlserver数据库中的表的id字段不会是自动增长的,需要修改成下面的

+展开
-SQL
CREATE TABLE [test].[dbo].[test] (
[id] int identity(1,1)NOT NULL------在NOT NULL前面增加identity(1,1)
[myname] nvarchar (50) NULL
)

,这样设置后,导入到mssqlserver时,access中表的列为自动增长的,才会在mssqlserver中对应标识列。

同理对其他表进行如上操作,最后点下一步直到“完成”,点击导入access数据库中的表。这样才会使原来access中原来为自动增长的列,对应到mssqlserver中的标识列。
类别:SQL及数据库 作者:波波 日期:2011-09-09 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090