惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
博客园 - 叶小钗
S
SegmentFault 最新的问题
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
量子位
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
J
Java Code Geeks
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 三生石上(FineUI控件)
Attack and Defense Labs
Attack and Defense Labs
AI
AI
The Cloudflare Blog
T
Tailwind CSS Blog
S
Schneier on Security
爱范儿
爱范儿
PCI Perspectives
PCI Perspectives
Stack Overflow Blog
Stack Overflow Blog
S
Secure Thoughts
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
V2EX - 技术
V2EX - 技术
S
Securelist
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
Help Net Security
Help Net Security
C
Cisco Blogs
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - 旭日东生

微软项目开发团队每个角色的一天是如何度过的【转】 如何对软件项目团队成员进行角色和岗位的划分【转】 C# 委托的妙文【转】 NHibernate初体验[转] 配置NHibernate有三种常见的配置方法[转] - 旭日东生 - 博客园 软件系统与管理工作的执行、监督问题 面向对象设计的一些个人认知阶段性总结 代码编码规则检查工具Microsoft StyleCop 4.2 [转]为什么用例不是“功能”? 有关数据完整性的教训和转一篇文章 转《马云和爱迪生:究竟谁“欺骗了世界”》以及我的个人想法 转而告之:马云给雅虎员工作的精彩演讲:爱迪生欺骗了世界! 哈佛管理论丛:谁背上了令人讨厌的猴子 有关UP(unified process)的疑问和胡思乱想 关于《敏捷软件开发:原则、模式与实践(C#版)》 更新数据库所有表的某一个指定字段 功能自动化测试工具列表大全【转】 企业内部实现软件测试自动化的方案探讨 一些有用Transat-SQL技巧 [持续更新中]
ms-sql递归调用
旭日东生 · 2008-07-30 · via 博客园 - 旭日东生

 今天早上碰到个问题,需要在MS_SQL中实现递归,两周前在整理数据的时候刚好实现了一个递归调用的方法,借此机会整理一下发上来,万一以需要可以自己拿出来用,不用再搜索 :)

当然为了方便搜索到的同学能够方便使用,也补充了使用的例子


----递归函数--------------------------------------------------------------------------

create  function dbo.f_get_data_by_recursion
(
 @group_father_id int
)
 returns @groups_result table (group_id int,group_name varchar(50),group_father_id int,last_count int)
begin
 declare @count as int
 set @count=1
 
 insert @groups_result select *,@count from groups where group_id=@group_father_id
 while @@rowcount<>0
 begin
  set @count=@count+1
  insert @groups_result
   select g.group_id,g.group_name,g.group_father_id,@count from groups g,@groups_result gr
    where g.group_father_id=gr.group_id and gr.last_count=@count-1
 end
 return     
end

GO

----调用举例--------------------------------------------------------------------------

create table dbo.groups
(
 group_id int,
 group_name varchar(50),
 group_father_id int
)


declare @loop as int
set @loop =1
while @loop < 1000
begin
 insert into groups (group_id,group_name,group_father_id) values (@loop,'name',@loop -1)
 set @loop =@loop +1
end

set @loop =2001
while @loop < 2500
begin
 insert into groups (group_id,group_name,group_father_id) values (@loop,'name',@loop -1)
 set @loop =@loop +1
end


select * from groups
select * from f_get_data_by_recursion(2001)

drop table dbo.groups
drop function dbo.f_get_data_by_recursion