Access数据库转换到SQL Server
Access数据库转换到SQL Server互相转换的不同点
有的时候我们会遇到Access转换到SQL Server,或者SQL Server转换成Access数据库的需要,如果SQL Server不使用存储过程的话,转换器来总体来说没什么大的变化,如果你使用的是ASP编写的代码,那么连代码也不需要怎么修改,但是还是有些不同之处需要大家注意的,这些都是icech长期以来积累的经验,供大家参考:
1、自动编号的问题
Access转换成SQL Server,所有的自动编号都会消失。需要在Access中修改为自动增加字段。
SQL Server转换成Access,那么自动编号也会消失,那么在转换过程中注意将SQL语句修改成IDENTITY (1, 1)就可以了,网上很多相关的文章。
2、日期格式的不同
SQL Server使用的是getdate(),而Access使用的是now()、time()或者date()。
SQL语句上也有些不一样,SQL Server中now()可以在SQL语句当成是一个字符串,而Access则不行。
3、一些字段格式不同
Access有“True/False”(或者叫是/否)字段,而SQL Server没有,所以在遇到Bool判断的时候要在编程语句上进行修改,使用1/0进行判断。
4、一些SQL语句还是细微差别
SQL Server中,Select top语句中,top可以省略,但是Access不行;
Access中,Delete From Table语句中的From不能省略,而SQL Server可以是Delete Table。
5、一些函数的使用也不一样
如果将Access转换成SQL Server,那么isnull(rowname)要改成rowname=null;
如果将Access转换成SQL Server,那么if rs("id") = 0 then要变为if clng(rs("id")) = 0 then;
如果将Access转换成SQL Server,CursorType要改成1,写成rs.open sql, conn, 1;
如果将Access转换成SQL Server,datediff(’d’, time1, time2)要改成datediff(day, time1, time2);
SQL Server的数值型在SQL语句中可以不带单引号,但是Access必须要加单引号。如:select * from table where id=’1’;
6、数字类型建议使用bigint类型