对于日期字段字段
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
sql server和access 中sql语句的区别(佚名)
时间: 2024-12-22 00:54:56
sql server和access 中sql语句的区别(佚名)的相关文章
SQL SERVER 与ACCESS、EXCEL的数据转换
SQL SERVER 与ACCESS.EXCEL的数据转换 熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作.在Transact-SQL语句中,我们主要使用OpenDataSource函数.OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助.利用下述方法,可以十分容易地实现SQL SERVER.ACCESS.EXCEL数据转换,详细说明如下: 一.SQL SERVER 和AC
SQL Server 2008 R2中配置作业失败后邮件发送通知
SQL Server日常维护中难免会遇到作业失败的情况.失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的.比较专业的监控系统比如SCOM虽然可以监控作业执行情况在出错时进行报警,但对于DBA来说可能可定制性不高,最主要的是负责监控的人员在看到报警后一般都需要立刻联系DBA来解决,对于一些重要性不高的作业失败了,大半夜把你叫起来,感觉肯定是不爽的.SQL Server 本身支持发送数据库邮件,结合发送邮件的功能,在作业失败后将出错情况通过邮件通知DBA,这
SQL SERVER 2005/2008 中关于架构的理解(一)
引用:http://www.cnblogs.com/chillsrc/p/3383098.html 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无效.”.当带上了架构名称之后(如“cus.CustomEntry”),却又能查询到表中的数据了,但是查询语句是已经写死在了应用程序中的,如果要进行更改,就有很大的工作量, 这是一件很郁闷的事情.于是想从数据库层面上解决此问题
SQL Server 记录(更新中...)
sys.databases 显示所有数据库信息 sys.tables 显示当前数据库所有的表的信息 Go 向 SQL Server 实用工具发出一批 Transact-SQL 语句已结束的信号,Go本身不是T-SQL语句 sq_addrole 等等 SQL Server 系统存储过程以字符 sp_ 开头. EXEC或EXECUTE 执行 Transact-SQL 批处理中的命令字符串.字符串或执行下列模块之一:系统存储过程.用户定义存储过程.CLR 存储过程.标量值用户定义函数或扩展存储过程.
向SQL Server 现有表中添加新列并添加描述.
注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) 代码 /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' *********
SQL SERVER 2005/2008 中关于架构的理解(转载)
在一次的实际工作中碰到以下情况, 在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无 效.”.当带上了架构名称之后(如“cus.CustomEntry”),却又能查询到表中的数据了,但是查询语句是已经写死在了应用程序中的,如果要进 行更改,就有很大的工作量, 这是一件很郁闷的事情.于是想从数据库层面上解决此问题,在查询了大量的资料之后,对于SQL SERVER中的架构有所了 解,并解决以上问题. 下面来
浅析SQL SERVER执行计划中的各类怪相
在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的取值不同,它的执行计划会一致吗? 3: 同一条SQL语句,其执行计划会变化,为什么 4: 在查询条件的某个或几个字段上创建了索引,执行计划就一定会走该索引吗? 5:同时存在几个索引,SQL语句会走那个索引? ..............................................
SQL Server数据库培训(SQL篇)----Select语句构成元素
1. Select语句构成元素 1.1 Select * 避免使用select * 当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 '*' 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,SQL在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间. 1.2 Select语句中元素的执行顺序 为了描述逻辑查询处理和各种SELECT查询子句
理解性能的奥秘——应用程序中慢,SSMS中快(6)——SQL Server如何编译动态SQL
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(5)--案例:如何应对参数嗅探 我们抛开参数嗅探的话题,回到了本系列的最初关注点中:为什么语句在应用程序中慢,但是在SSMS中快?到目前为止,都是在说存储过程的情况.而存储过程的问题通常是因为SET ARITHABORT的不同设置项的原因.如果你的应用不使用存储过程,而是通过中间层提交客户端的查询,那么也有几个原因可能让你的查询因为不同的缓存条目从而使得在SSMS和应用程序中的运