SQL2005/2008中的CTE应用--递归查询_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL2005/2008中的CTE应用--递归查询

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:查询应用NULL
黑客防线网安网讯:微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL。这是一个类似于非持久视图的好东东。按照MSDN介绍1、公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELET...

微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL这是一个类似于非持久视图的好东东

按照MSDN介绍

1、公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集 。CTE 与派生表类似具体表现在不存储为对象并且只在查询期间有效 。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次 。

CTE 可用于:

创建递归查询。有关详细信息,请参阅使用公用表表达式的递归查询 。

在不需要常规使用视图时替换视图,也就是说,不必将定义存储在元数据中。

启用按从标量嵌套 select 语句派生的列进行分组,或者按不确定性函数或有外部访问的函数进行分组。

在同一语句中多次引用生成的表。

使用 CTE 可以获得提高可读性和轻松维护复杂查询的优点。查询可以分为单独块、简单块、逻辑生成块。之后,这些简单块可用于生成更复杂的临时 CTE,直到生成最终结果集。可以在用户定义的例程(如函数、存储过程、触发器或视图)中定义 CTE。

2、公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE 。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。当某个查询引用递归 CTE 时,它即被称为递归查询 。递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或者是其他父级产品的组件)中的数据。

递归 CTE 可以极大地简化在 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句中运行递归查询所需的代码。在 SQL Server 的早期版本中,递归查询通常需要使用临时表、游标和逻辑来控制递归步骤流。有关公用表表达式的详细信息,请参阅使用公用表表达式 。

 这里举例说明如下:

 为了描述方便,邀月特地列举了一个常见的自关联Table

表结构如下:
CREATE TABLE [dbo].[CategorySelf](
    [PKID] [int] IDENTITY(1,1) NOT NULL,
    [C_Name] [nvarchar](50) NOT NULL,
    [C_Level] [int] NOT NULL,
    [C_Code] [nvarchar](255) NULL,
    [C_Parent] [int] NOT NULL,
    [InsertTime] [datetime] NOT NULL,
    [InsertUser] [nvarchar](50) NULL,
    [UpdateTime] [datetime] NOT NULL,
    [UpdateUser] [nvarchar](50) NULL,
    [SortLevel] [int] NOT NULL,
    [CurrState] [smallint] NOT NULL,
    [F1] [int] NOT NULL,
    [F2] [nvarchar](255) NULL
 CONSTRAINT [PK_OBJECTCATEGORYSELF] PRIMARY KEY CLUSTERED
(
    [PKID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10292-1.html
网站维护教程更新时间:2012-03-21 02:32:21  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer