SQLServer2005使用关系数据库存储CFG的信息

本文主要向大家介绍的是用SQL Server 2005使用关系数据库存储CFG(控制流程图)的信息。在查询时,我们为了要得到所有dominate关系的相关结果,我们使用了CTE来进行递归查询。SQL Server 2005使用关系数据库存储CFG简单例子如下:

成都网站建设哪家好,找创新互联建站!专注于网页设计、网站建设公司、微信开发、微信平台小程序开发、集团成都定制网站等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都格栅板等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称誉!

1. 现有表testRe结构如下

2. 欲得到的查询结果为找到id=’a'的项的所有pId,即b、c、d。

3. 使用CTE做递归查询:

 
 
 
  1. WITH Re_CTE(id, pId, Level)
  2. Technorati 标签: sql server,CTE,递归,查询
  3. AS
  4. (
  5. SELECT id, pId, 1 AS [Level]
  6. FROM testRe
  7. WHERE id=’a’
  8. UNION ALL
  9. SELECT t.id, t.pId, [Level] + 1
  10. FROM testRe t INNER JOIN Re_CTE ct
  11. ON t.id=ct.pId
  12. )
  13. SELECT * FROM Re_CTE 

其中,Level为可选项

4. SQL Server 2005使用关系数据库存储CFG,查询结果为:

5. CTE的简单说明(参考MSDNhttp://msdn.microsoft.com/zh-cn/library/ms186243%28SQL.90%29.ASPx):

 
 
 
  1. WITH cte_name(column_name [,...n])
  2. AS
  3. (
  4. CTE_query_definition –- Anchor member is defined.
  5. UNION ALL
  6. CTE_query_definition –- Recursive member is defined referencing cte_name.
  7. )
  8. – Statement using the CTE
  9. SELECT *
  10. FROM cte_name 

一个递归 CTE 结构必须至少包含一个定位点成员和一个递归成员。

执行时:

将 CTE 表达式拆分为定位点成员和递归成员。

运行定位点成员,创建第一个调用或基准结果集 (T0)。

运行递归成员,将 Ti 作为输入,将 Ti+1 作为输出。

重复步骤 3,直到返回空集。

返回结果集。这是对 T0 到 Tn 执行 UNION ALL 的结果。

上述的相关内容就是对SQL Server 2005使用关系数据库存储CFG的描述,希望会给你带来一些帮助在此方面。

网页标题:SQLServer2005使用关系数据库存储CFG的信息
分享路径:http://www.hantingmc.com/qtweb/news19/238119.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联