摘要:
SQL Server 2005版本开始支持了窗口函数(Windowing Function)和OVER字句。SQL Server 2012版本开始支持了窗口函数的ORDER BY字句实现连续/累计聚合功能。但是有个功能到SQL Server 2014版本为止(从目前SQL Server 2016 C 阅读全文
摘要:
EXECUTE AS LOGIN/USER和Revert表达式都是从SQL Server 2005就有。Revert的作用是用于切换当前过程的执行上下文返回上一个EXECUTE AS 语句发生之前的安全上下文。Revert可以在存储过程、ad-hoc环境下、用户定义函数中使用。Revert是和 EX 阅读全文
摘要:
两个都是SQL SERVER 2012引入的函数。用于返回在以分组和排序后取得最后一行的某个字段的值。很简单两个函数。ORDER BY字句是必须的,PARITION BY则是可选。 似乎没什么好说的。结果在测试LAST_VALUE函数的时候有个问题。 下面是测试脚本 ;with t as (SELE 阅读全文
摘要:
SQL Server 2012对EXECUTE子句引入了WITH RESULT SETS选项,用于对EXECUTE语句执行的存储过程或者动态语句结果进行一个指定数据类型的转换,这样可以避免一种情况就是需要用临时表存储后再转换成目标表的数据字段类型,或者需要用OPENQUERY去转换。 用法: IF 阅读全文
摘要:
SQL Server 2012引入OFFSET + FETCH字句。它俩出现在SELECT .... ORDER BY ...后面。作用是告诉SQL Server在结果集中忽略前N行然后取前M行出来。 比如 SELECT NUM FROM dbo.Numbers ORDER BY Num OFFSE 阅读全文
摘要:
这个函数和TRY_PARSE一起从SQL Server 2012引入。它的存在是因为TRY_PARSE一旦遇到无法成功转换就会以NULL值返回,而如果你希望以报错的形式,你就可以用PARSE。 比如 SELECT PARSE('a' AS int) 报错消息 Msg 9819, Level 16, 阅读全文
摘要:
上面几个函数都是SQL Server 2012新增的时间函数。 EOMONTH 返回传入时间的月结束日,返回数据类型为DATE SELECT EOMONTH(GETDATE()) 结果为 2016-01-31 DATEFROMPARTS 如同C#或者Java声明一个DATETIME实例那样通过传入Y 阅读全文
摘要:
这是一个SQL Server 2012后引进的新函数。作用就如同它名字的意思。它对NULL值得处理是空字符串。当然它能做的不仅是对字符的支持。它支持N个列输入,列的类型支持更加完善。不过其实它的原理不过是把传入的数据用CONVERT函数转换成NVARCHAR类型。不信你传个XML或者SQL_VARI 阅读全文
摘要:
SQL Server 2012开始引入了THROW字句用于替代从SQL Server开始沿用至今的RAISERROR。既然作用相同,都是在TRY... CATCH代码块后不抓错误然后抛出错误,它们之间的差异是什么? RAISERROR statement THROW statement If a m 阅读全文
摘要:
Comming soon!参考:Natively Compiled Stored Procedures 阅读全文