SQL SERVER 和 ACCESS 的 SQL语法相差真大啊(100分)

  • 主题发起人 主题发起人 iwalk
  • 开始时间 开始时间
I

iwalk

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位高手给说说,开发一个能在两种数据库上都兼容的系统要注意什么?
 
Access和Sysbase上字符串用单引号和多引号都可以,SqlServer中不能用字符串不能用双引号.在开发程序中习惯用双引号和开发工具中字符串区别的朋友注意不得不使用令人头疼的一大堆双引号了.<br>&nbsp; &nbsp; Access不支持自定义的存储过程,Access中用VBA编写的函数和过程在Access内部(包括SQL中)可以访问,但同样的对象在其他程序(如Delphi7程序)中访问就会报错.<br>&nbsp; &nbsp; Access和SQLServer语法类似,但Access是JetSQL,SQLServer是T-SQL,具体区别不清楚,但肯定还是有很多不同的.<br>&nbsp; &nbsp; Access虽然也可以用做网络数据库,但基本上还是基于本地的桌面数据库.并发控制方面要远弱于SQLSever,Oracle等大型数据库.在开发Access时就经常会出现Access数据库文件只读或锁定的等待.
 
SQL &nbsp;delete from table<br>ACC &nbsp;delete * from table
 
区别的细节还是挺多的
 
你们都没说到点子上<br>在实际应用中,通常只需要注意两点即可<br>一是日期时间型,access是用#的,sql则是和字符串一样的两个单引号<br>二是;分号问题,access是不支持的,只能一句一句地执行,不能把sql语句用;接连<br>别外还有一些并非sql通用标准的语句就比较锁碎了,基本上可以忽略,运行出错时再去解决就可以了,比如一些mssql服务上运行的特定语句(getdate(),sp_..,备份,create.. 等等)
 
感谢。。。。。。
 
还有一点最大的不同的是更新操作。<br>SQL Server中 update a set a.aa = b.bb from b where ..<br>Access中:update a, b set a.aa = b.bb where ....
 
1ACCESS 中没有CASE,但是有一个类似的函数IIF ,功能要弱一些<br>2ACCESS中模糊查询是*号,SQLSERVER中是%号<br>3.UPDATE语句,两表关联时不同。<br>4.ACCESS没有SUBSTRING函数,只有LEFT,RIGHT,<br>5.SQLSERVER子串函数是CHARINDEX和PATINDEX,ACCESS是INSTR<br>6日期ACCESS是#号,SQLSERVER是‘’<br>......<br>很多函数都不一样的
 
一个数据处理接口,由两个类(分别是SQLServer和Access数据处理类)分别进行实现。语句的差别其实倒是小问题,网上查查就知道了
 
1、SQL server 、Oracle 适合开发大型数据库<br>2、Access更适合做桌面数据库,不支持分号,单步执行
 
判断是否为空<br>SQL 有isnull,iif ...<br>Access 有iif
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部