SQL Server2012对于开发人员用的上的新特性

  次阅读 来源:互联网(转载协议) 2016-03-01 10:18 我要评论(0)

SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012SP1,体检下感觉良好。官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性。

一、增加了Sequence对象:

这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在SQLServer中终于也看到了类似的对象,只是在使用的语法上有一点点不一样。创建语法也是CREATE SEQUENCE,使用的时候需要使用NEXT VALUEFOR来取下一个值:

CREATE SEQUENCE [dbo].[SQ_1]

AS [bigint]

START WITH 1

INCREMENT BY 1;

SELECT NEXT VALUE FOR [SQ_1] AS FirstUse;

如果要插入一个值,那么就是:

INSERT INTO t1(c1,c2)

VALUES (NEXT VALUE FOR SQ_1, 'Test') ;

但是好像没有提供获得当前值的语法,难道必须取下一个值?

二、新的分页查询语法:

以前在SQL Server中分页,最早是用top或者临时表,后来出现了ROW_NUMBER函数实现分页,现在最新的SQL2012可以在orderby子句后跟offset和fetch来分页,感觉有点像是LINQ的语法。比如查询1W行之后的20条有效项目信息,那么ROW_NUMBER分页查询的SQL是:

select *

from

(

select *,ROW_NUMBER() over(order by p.PROJECT_ID) R

from PROJECT p

where p.IS_DELETED=0

) x

where x.R between 10001 and 10020

而是有了新的语法,那么查询语句就是:

SELECT *

FROM PROJECT p

where p.IS_DELETED=0

ORDER BY p.PROJECT_ID

OFFSET 10001 ROWS

FETCH NEXT 20 ROWS ONLY;

显然使用了新的语法后代码看起来更简洁,意思表达也更明确。从执行效率上来讲,试了一下,是一样的。

三、一些新的系统函数:

3.1相当于C#中三目运算符的IIF函数

这个函数和VBA中的IIF函数相同,判断第一个参数的表达式是否为真,真则返回第二个参数,假则返回第三个参数。

有了这个函数很多时候我们可以不用再使用复杂的case when语法了。比如我们判断项目的大小以显示对应的字符串,那么老的写法是:

select p.CODE,case when p.SIZE>100 then 'Big' else 'Small' end asSIZE_STRING

from PROJECT p

where SIZE is not null

现在,我们可以简单的写成:

select p.CODE,IIF(p.SIZE>100,'Big','Small') as SIZE_STRING

from PROJECT p

where SIZE is not null

3.2不用判断类型和NULL的字符串连接CONCAT函数

SQLServer本来对字符串的连接很简单,直接使用“+”号,但是需要注意两个问题,一是必须类型都是字符串类型,如果是数字类型那么会报语法错误,所以必须把数字类型转换为字符串。二是如果其中的某个值为null,那么整个连接的结果就是一个null字符串,所以还需要判断null,所以本来只是一个连接字符串的查询就会写的很复杂:

select p.PROJECT_ID,p.CODE+','+p.NAME+','+ISNULL(p.NICK_NAME,'')+','+ISNULL(CONVERT(varchar(50),p.SIZE),'')

from PROJECT p

现在使用CONCAT函数,直接忽略其中的类型,忽略对NULL的检查,直接连接成一个非空的字符串:

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...