WEB开发网
开发学院数据库MSSQL Server Access与SQL Server互相转换的不同点 阅读

Access与SQL Server互相转换的不同点

 2008-02-23 10:13:43 来源:WEB开发网   
核心提示: 有的时候我们会遇到Access转换到SQL Server,或者SQL Server转换成Access数据库的需要,Access与SQL Server互相转换的不同点,如果SQL Server不使用存储过程的话,转换器来总体来说没什么大的变化,写成rs.open sql, conn, 1; 如果将Access转换成S
   有的时候我们会遇到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类型

Tags:Access SQL Server

编辑录入:coldstar [复制链接] [打 印]
赞助商链接