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类型
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类型
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接