SQL Server与Access数据库ASP代码的比较详解

在用ASP开发网站时,后台数据库的选择常常有两种,一种是SQL Server,另一种就是Access,那么这两种数据库在ASP开发网站的过程中有什么不同的地方吗?本文我们就来介绍这一部分内容,希望能够对您有所帮助。

后台数据库:[Microsoft Access]与[Microsoft Sql Server]更换之后,ASP代码应注意要修改的一些地方:

一、连接问题(举例)

  1. [Microsoft Access]  
  2. constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}" 
  3. [Microsoft Sql Server]  
  4. constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd=" 

 

二、相似函数(举例)

[1]DATEDIFF(datepart, startdate, enddate),其中“datepart”参数可选项如下:

  1. 设置 描述   
  2. ————————————  
  3. [Microsoft Access]  
  4. 年 yyyy  
  5. 季度 q  
  6. 月 m  
  7. 一年的日数 y  
  8. 日 d  
  9. 一周的日数 w  
  10. 周 ww  
  11. 小时 h  
  12. 分钟 n  
  13. 秒 s  
  14. [Microsoft Sql Server]  
  15. year yy, yyyy  
  16. quarter qq, q  
  17. month mm, m  
  18. dayofyear dy, y  
  19. day dd, d  
  20. week wk, ww  
  21. hour hh  
  22. minute mi, n  
  23. second ss, s  
  24. millisecond ms 

基本上差不多,但注意的是在写的时候,[Microsoft Access]要加引号,如:datediff(‘d’,enddate,’2004/08/01′),[Microsoft Sql Server]则不需要,如:datediff(d,enddate,’2004/08/01′)

[2][Microsoft Access]中可用如cstr等转数据类型函数,而[Microsoft Sql Server]中则用convert或cast函数,如:convert(varchar,[amount])等。

[3][Microsoft Sql Server]取当前时间用getdate等等…

三、语句

[Microsoft Sql Server]可以用

  1. CASE  
  2. WHEN THEN  
  3. WHEN THEN  
  4. ...  
  5. ELSE  
  6. END  

语句,而[Microsoft Access]不支持。[Microsoft Access]也不支持between语句,[Microsoft Sql Server]则可以这样写:[date] between @date1 and @date2。

四、查询表

[Microsoft Sql Server]可三个及以上表join查询,而[Microsoft Access]好像只能两个表联接查询(待权威确认),而且[Microsoft Sql Server]可用“*=”和“=*”连接符。

五、除零问题

[Microsoft Access]在碰到除数为零时,自动丢掉相关记录,而[Microsoft Sql Server]则会报错,且查询中止。删除代码:[Microsoft Access]可以这样写:delete * from [table],[Microsoft SQL Server]只能这样写:delete from [table]多*会报错。

当前日期:[Microsoft Access]用date(),[Microsoft SQL Server],用getdate()如果数据库可能会更换类型的话,可以在ASP代码中加上如这样:

  1. if inStr(constr,"Microsoft Access") > 0 then   
  2. sqlstr=[Microsoft Access][sql代码]  
  3. else  
  4. sqlstr=[Microsoft Sql Server][sql代码]  
  5. end if 

 

这样即使改了数据库,也不用改数据库查询更新代码了。再加:access中有true、false的字段记录,而sql里只有smallint,对应如果在access里有“字段名=true”的,在sql里要改成“字段名=1” ,网上大部分的免费asp程序使用的是access数据库。但是access数据库作为一个中小型的单机数据库系统,在承担访问量、数据量大的网站应用时,往往就不堪重负了。

一般认为,超过50M的access数据库性能就开始明显下降,超过100M以后,出错、运行慢的问题会更加突出。尽管可以如动网7.0以后那样,从程序的角度尽量优化以图提高性能,但是不能从根本上解决问题。这时也许使用微软的SQL Server数据库就是最可能的办法,当然也可以使用其它的如Oracle、MySQL等等,但是作为改写来说,由于同为微软的产品,改写成SQL Server应该是最省力的办法。

关于SQL Server与Access数据库ASP代码的比较的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. 初学SQL Server数据库的一些常用操作总结
  2. 初学SQL Server笔记之修改表结构的示例代码
  3. SQL Server批量修改字段的数据类型的代码实例
  4. SQL Server数据库字段说明的添加修改删除示例
  5. SQL Server 2005数据库中设置自动编号字段实例解析

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/257998.html<

(0)
管理的头像管理
上一篇2025-05-02 00:57
下一篇 2025-05-02 00:58

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注