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

  access数据库在导入mssqlserver的时候,如果没有增加一些特别的设置,access中的自动增长列不会在导入mssqlserver的时候保留下来。要保留access自动增长列,有2种办法。

1)使用access的数据库升迁向导。【推荐此方法,适用于mssqlserver2000和mssqlserver2005,2008没安装具体不清楚是否可用】
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

sqlserver20000

 

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

sqlserver2005


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

CREATE TABLE [test].[dbo].[test] (
[id] int NOT NULL, 
[myname] nvarchar (50) NULL
)

 


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

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

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中的标识列。

加支付宝好友偷能量挖...


原创文章,转载请注明出处:access数据库导入mssqlserver保留自动增长列

评论(0)Web开发网
阅读(243)喜欢(0)SQL及数据库