mssql sqlserver 2012版 sql脚本新功能分享


摘要:
sql server 2012,在sql语法中,加入了一些新的函数,包括 fetch offset first_value last_value,还有错误异常处理 throw
下文将依次介绍这些函数



Fetch与Offset

以前在数据分页中,我们通常采用临时表、row_number over 生成排序列,然后通过between and 获取指定列数据的方式来获取相应的列数据,
在sql server 2012版的数据库中,我们可以在 order by 后面使用offset fetch next的方式对数据表进行分页。
————————————–

FIRST_VALUE和LAST_VALUE

first_value:根据 Partition By对数据进行分区(如果不输入分区信息,则取整张表),取分区中排序字段的第一个值
last_value :根据 Partition By对数据进行分区(如果不输入分区信息,则取整张表),取分区中排序字段的最后一个值
————————————–

反射

以前我们需要获取存储过程的返回结果,需要实际运行,然后才能获取返回结果,
在sql server2012中,我们只需使用动态视图 sp_describe_first_result_set
sys.dm_exec_describe_first_result和sys.dm_exec_describe_first_result_set_for_object
获取存储过程的返回结果
————————————–

错误处理

在sql server 2005中,就出现了 try catch扑捉系统异常,但是一致没有主动抛出异常的函数 throwm
在sql server 2012中,系统新定义了函数 throw抛出异常,类似与 以前的raiserror函数
————————————-

日期新函数 eomonth

eomonth函数主要返回月份的最后一天,方便报表中使用。