SQL种获取所有子级存储过程--通用
来源:互联网 发布:JavaScript match(src) 编辑:程序博客网 时间:2024/05/29 07:19
详见SQL递归
/*----------------------------------------------------------*/
/* [PC1recursion] *//*----------------------------------------------------------*/
IF EXISTS ( SELECT 1 FROM sys.objects o WHERE object_id = object_id( N'[PC1recursion]' ) AND OBJECTPROPERTY( object_id, N'IsProcedure') = 1 )
DROP PROCEDURE [PC1recursion]
GO
create PROC [dbo].[PC1recursion]
(
@tbname VARCHAR(36) = '', --表明
@id varchar(50)='',--id名称
@idValue varchar(36)='',--id值
@pid varchar(1000) = ''--父级ID名称
)
AS
/*
功能:根据表,查询该表吓所有本级以及所有子级数据
参数:
返回:递归返回所有数据
编写:ljr 2017-07-8
测试:
*/
BEGIN
declare @sql varchar(max)
set @sql='WITH cteTree
AS (SELECT *
FROM '+@tbname+'
WHERE '+@id+'='''+@idValue+''' --第一个查询作为递归的基点(锚点)
UNION ALL
SELECT '+@tbname+'.* --第二个查询作为递归成员, 下属成员的结果为空时,此递归结束。
FROM
cteTree INNER JOIN '+@tbname+' ON cteTree.'+@id+' ='+@tbname+'.'+@pid+')
select * into #all from cteTree
select distinct *
from #all
drop table #all
'
print @sql
exec (@sql)
END
GO
列子:exec PC1recursion @tbname = 'SY1Org', --表明
@id ='orgID',--id名称
@idValue ='40730451-F1D4-4A9D-8B57-E3858CA5CA23',--id值
@pid='POrgID'
结果集:
树形结果集展示:
阅读全文
0 0
- SQL种获取所有子级存储过程--通用
- 通用获取父节点/子节点/子节点下所有节点ID的存储过程
- 通用获取父节点/子节点/子节点下所有节点ID的存储过程
- SQL 通用存储过程
- sql通用存储过程
- MySQL 存储过程 递归 获取所有子节点
- sql存储过程查询栏目下面的所有子栏目
- 获取sql所有存储过程脚本,获取sql表名,视图名,存储过程名等
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- SQL 通用分页存储过程
- SQL 通用分页存储过程
- sql通用分页存储过程
- sql 通用分页存储过程
- sql 通用分页存储过程
- SQL分页通用存储过程
- 通用sql分页存储过程
- 通用SQL分页存储过程
- SQL的通用存储过程
- 弹出框与图片轮播
- WebApp开发之Cordova安装教程
- cs229 支持向量机小议
- CSS元素排列(居中)问题
- dubbo是如何“插入”到spring框架中的
- SQL种获取所有子级存储过程--通用
- OSI的七层模型
- Spark_分区、任务等概念总结
- FL Studio 12汉化补丁-汉化包-汉化破解版
- Myeclipse解决method initializationerror not found:JUnit4单元测试报错问题
- 第6章 数据库索引优化
- 回顾大一·C语言编程2.1
- 关于最近没有更新博文的原因及一些其他问题统一回复
- 用Maven创建SSM项目需要添加的依赖