比如下面这些...
1,对于日期字段字段
access表示为:#1981-28-12#
SQLSERVER2000表示为:'1981-02-12'
2,SQL语句区别,select ,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关键字后.
更新单表时:都为:
Update table1 set ab=‘12‘,cd=444 where ....
3,delete语句
access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
sqlserve 中则为: delete from table1 where a>2 即没有*号
4,as 后面的计算字段区别
access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。
sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。
5,[.]与[!]的区别
access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。
sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。
6,联合查询时,
access中多表联合查询:‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
sqlserve 中则‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。---
7,access升级到sqlserver时,
可以用sqlserver的数据导入工具导入数据,但要做必要的处理。
access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)
8,true与1=1
access用where true表示条件为真,
sqlserver用where 1=1表示条件为真
9,判断字段值为空的区别
普通空:
Access和sql server一样 where code is null 或 where code is nol null
条件空:
Access:iif([num] is null,0,[num]) 或 iif([num] is null,[num1],[num])
SQLServer: isnull([num],0) 或 isnull([num],[num1])
10,SQL语句取子串的区别
access:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n)
如:select left(cs1,4)+‘-‘+cs2 as cs3
SQLServer: SUBSTRING(expression, start, length)
如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + ‘-‘ + cs2 as cs3
补充:
ACCESS与SQL2000的SQL语句有区别的
比如now()在SQL2000中必须改为getdate()
还有关键词必须加[] ,像ACCESS中字段名用name SQL20000必须加[name] 否则出错
数据库连接字重新配置
1. access 转sql 数据库后需要建立各表关键字以及递增量设置部分数据类型需要重新定义
2. now() 函数是可接受的,但在日期比较过程中需要用 getdate()
3. 保留字需要加 []
4. 单双引号需要转变
5. 遵循标准sql定义(最关键的一条)
看看MSSQLServer联机丛书。
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
ACCESS转SQLSERVER数据库的注意事项
2021-08-29 21:57数据库之家 数据库技术
Access承重量太低,当你考虑升级到SQL Server时,并不只是个连接字符串需要改变,需要改变的还有很多
延伸 · 阅读
- 2022-03-09C# Ado.net实现读取SQLServer数据库存储过程列表及参
- 2022-03-05sqlserver数据库加密后无法使用MDF,LDF,log文件名称被
- 2022-03-02Java中String的JdbcTemplate连接SQLServer数据库的方法
- 2022-02-23Excel2003表格中如何导入ACCESS数据库实现数据快速
- 2022-02-22C# 操作 access 数据库的实例代码
- 2022-02-10c# 使用Entity Framework操作Access数据库的示例
- 数据库技术
阿里云服务器怎么拷贝数据库
阿里 云服务器 是一种云计算服务,提供了强大的云服务器资源,让用户可以方便地创建、管理和运行自己的应用程序。拷贝数据库是在服务器迁移、备份...
- 数据库技术
oracle可以重复索引吗
Oracle不允许重复索引。在Oracle数据库中,创建重复索引是不被允许的,并且会引发错误。 索引是一种用于提高数据库查询性能的数据结构。它们允许快速访...
- 数据库技术
sql小计汇总 rollup用法实例分析
rollup在oracle ,sql-server里面都有有。...
- 数据库技术
在将文本文件导入 MySQL 表时,MySQL 如何评估文本文件中写入的两
假设如果文本文件中写入的两行之间有一个空行,那么在将该文本文件导入 MySQL 表时,MySQL 会将其评估为数据行。可以通过以下示例来理解 - 示例 假设我...
- 数据库技术
利用MongoDB技术开发中遇到的数据删除问题的解决方案探究
利用MongoDB技术开发中遇到的数据删除问题的解决方案探究 引言: 随着互联网和移动互联网的兴起,数据的管理变得愈发重要。在开发过程中,我们经常需...
- 数据库技术
阿里云创建云数据库服务器
阿里云 是中国领先的云计算服务提供商,提供了一系列强大的云计算产品和服务。其中, 阿里云 数据库服务器(ApsaraDB for RDS)是一种托管式的关系型数据...
- 数据库技术
如何实现MySQL中修改表结构的语句?
如何实现MySQL中修改表结构的语句? MySQL 是一种流行的关系型数据库管理系统(RDBMS),用于存储和管理大量的数据。在实际的开发过程中,经常需要修改...
- 数据库技术
SQL中case when then else end用法实例
一、阐述 case when then else end 可以理解为java的if-else if -else。可以理解为流程控制语句或条件控制语句。可以实现资料获取的时候,可以更多的条件和自定义...