WEB开发网
开发学院数据库MSSQL Server T-SQL Enhancement in SQL Server 2005 - Part I 阅读

T-SQL Enhancement in SQL Server 2005 - Part I

 2008-12-06 10:15:56 来源:WEB开发网   
核心提示:较之前一版本,SQL Server 2005可以说是作出了根本性的革新,T-SQL Enhancement in SQL Server 2005 - Part I,对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,而对于OUTER APPLY来说,最终的查询结果将包含该条记录,使我们可以使用任意一种

较之前一版本,SQL Server 2005可以说是作出了根本性的革新。对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意一种.NET Programming Language来编写Stored Procedure、Function、Trigger、User Defined Type等等。但是并不意味着我们使用多年的T-SQL即将被淘汰,而事实上T-SQL仍然是我们最为常见的基于Database的编程语言。为了使编程人员更容易地使用T-SQL来实现一些较为复杂的功能,SQL Server 2005在T-SQL进行了一系列的改进,这篇文章将概括性地介绍这些T-SQL Enhancement。

为了使读者对这些新引入的T-SQL特性有一个大概的了解,我先概括性地列出这些特性:

APPLY Operator

Common Table Expression

PIVOT Operator

TOP Clause Enhancement

Ranking

DDL Trigger

Others

一、      APPLY Operator

APPLY这个操作符被置于一个查询的FROM语句中,对于查询出的每条数据行,都去调用一个Table Value Function(TVF),并将TVF的数据附加在现有的查询结果上。APPLY通常用于这样的场景中:查询的结果一部分包含在一个Table或者View中,另一部分则通过一个TVF来获得,通过TVF获得的记录是基于Table或者View中每条记录的某个Column的数据,也就是说我们把Table或者View的某个Column的值作为调用TVF的参数。这实际上将通过TVF获得的Table作为现有Table或者View的Outer table,将它们连接(Join)在一起,而连接它们的Key就是作为TVF参数传入的Column。

我们知道Join分为Inner Join和Outer Join,他们分别对应着CROSS APPLY和OUTER APPLY。如果对于某个条记录,TVF发挥的是一个空的Rowset,对于CROSS APPLY,该记录将不会出现在最终的结果中,而对于OUTER APPLY来说,最终的查询结果将包含该条记录,只是基于TVF的Column的值为NULL。

1 2 3 4  下一页

Tags:SQL Enhancement in

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接