Access转Sql Server问题 实例说明


今日帮同学改一个老的系统作为毕业设计,这系统技术绝对落后asp+access 。为了对付老师的验收, 而后这同学编程又不是很好,而其到了最终时刻才想到开始做毕设,于是找到了我 。

我看了他不知从哪里搞来的代码,跑了下,还行能跑,过两天就要验收程序了,把asp改成 asp.net是没 工夫了,于是我提议改下数据库算了,于是决定把access转成sql server 。看似一个公司的产品,转起来问题到一大堆 。现总结如下,

先说怎么转移数据, 打开sqlserver的企业治理器, 构建张表, 而后右击那张表,点导入数据, 而后选中数据源(我这里便是access的mdb文件),一路next, 根本没什么问题,数据就这样导好了,但问题没那么 方便,sql server和access的机制有很大的不同

1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工 批改这些字段,并把他的标示 取舍是,种子为1,增量为1,

2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须 批改成自己想要的属性了;

3,另外,大家要 留神对 工夫函数的把握.ACCESS与SQL是有众多不同的.

ACCESS转MS SQL数据库的几点 教训

1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL 缔造语句中外加identity, 示意自动编号!

2.转化时,跟日期有关的字段,SQL SERVER默许为smalldatetime型,我们最好将它变为datetime型,由于datetime型的 规模比smalldatetime型大 。我遇见这种状况,用smalldatetime型时,转化失败,而用datetime型时,转化 顺利 。

3.对此两种数据库进行操作的sql语句不全 雷同,例如:在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.

4.日期函数不 雷同,在对ACCESS数据库 解决中,可用date()、time()等函数,但对SQL SERVER数据库 解决中,不得不用datediff,dateadd等函数,而不能用date()、time()等函数 。

5.在对ACCESS数据库 解决中,sql语句中直接 可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库 解决中,却不能用 。