因为公司的项目要出access版本, 这两天做转换工作, 把两者的差异做一个记录备忘:
1. 日期字段的表示
access表示为 #1981-28-12# 默认值 now()
SQLSERVER2000表示为 '1981-02-12' 默认值 getdate()
2. Update 语句
多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比:
SQLSERVER中更新多表的UPDATE语句:
UPDATE Tab1 SET a.Name = b.Name FROM Tab1 a,Tab2 b WHERE a.ID = b.ID;
同样功能的SQL语句在ACCESS中应该是
UPDATE Tab1 a,Tab2 b SET a.Name = b.Name WHERE a.ID = b.ID;
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后. 单表操作无区别
3. 判断
Sql Server 用 "!=" 和 "<>" 均可以通过, Access 需用 "<>", 用"!="无法通过
4. 关键字
access有很多系统默认关键字, 在写SQL时需要在表名或字段名外加上中括号[字段], 这个我没怎么遇到过
5. 类型转换
SQL Server里面的bigint转到access会变成decimal, 而不是Long, SQL 导出 access时需要改写生成语句, 在ID字段加入 identity(1,1), 否则无法自动编号
6. Like 语句
SQL 写法 like '%xxx%' 转换成access为 like '*xxx*'
7. Alinq
由于项目部分使用Linq, 所以Alinq(www.alinq.org)还是很好用的
暂时用到了这么多, 先写这些吧