王一的专栏

知识+实践=智慧

access转化为sqlserver数据库总结


前几天,有一客户从access版本升级到sqlserver版本后,数据库也需要转化,这个任务交给我了,原本以为很简单

的事,直接打开sqlserver的企业管理器,使用自带的数据转化功能(DTS导入/导出向导),几分钟的时间,就把所有

的事做完了.也没测试,直接交给客户了,当客户运行软件时,发现增加记录的操作总是出错.我就马上测试一下,

呵,提示有一字段不能为空,原来数据库转化时,access的自动编号字段都转化为整型了.唉,我只好一个一个的把

它们变为自动增长型.之后,客户又发现,一些查询功能不能用.问题又来了,可我测试时,一直找不到原因,同样的

一名sql查询,在sqlserver查询管理器中有结果,可到了软件中,就不行了(软件是用delphi开发的.)最后,对以前

的sql数据库与转化时的sql数据库进行比较,发现后者多了许多nvarchar,nchar等字段.请教一下公司老前辈,他

们说它们不会自已截取空字符,在网上查找的有这样一句话:odbc不支持nvarchar/nchar/ntext类型,这些类型

的字段会被odbc忽略,我想,可能ado也有这样的问题吧.于是就把所有的带n的类型都变成不带n的.哈哈,这下查

询操作可以用了.任务完成后,我就把软件时的操作总结如下:
1.转化前,先对access数据库进行数据修复与压缩,去掉冗余数据.
2.转化后,需要参照二者的表结构,把自动编号字段改为sqlserver步长为一的整型.
3.转化后,access的文本型有的变成nvarchar,有的变成char,最后统一检查一下,并参照原有的sql数据库,最好

修改成与原有sql数据库一致的形式.
4,转化时,跟日期有关的字段,SQLserver默认为smalldatetime型,我们最好将它变为datetime型,因为datet

ime型的范围比smalldatetime型大(这点我没遇到,不过网上说的挺多)
5.如果用delphi编程时(别的就不清楚啦),最好是用varchar,char,text这样的非Unicode字符类型.其次,如果sql查询语句是嵌套语句,且用parameters属性参数化时,最好添加一句parameters[].size=length(字符串),否则会查询不出来的.
 这些都是自己亲身体验的,希望和大家多交流一些.
 

阅读更多
想对作者说点什么? 我来说一句

sqlserveraccess

2009年09月09日 2.19MB 下载

图解把SQLServer数据导入Access

2015年07月26日 919KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭