求一条SQL语句的写法。

moonfeel 2009-12-18 01:12:51
数据库表A和B,都为无限递归结构(id,Pid,name),现在任意选中A表的一条记录,如何将该记录及其所有子记录全部插到B表中?
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cailee 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 moonfeel 的回复:]
数据库表A和B,都为无限递归结构(id,Pid,name),现在任意选中A表的一条记录,如何将该记录及其所有子记录全部插到B表中?
[/Quote]
;with tempdb as
(
select * from a where id=1
union all
select a.* from a join tempdb b on a.pid=b.id
)
select * from tempdb
CopperBell 2009-12-18
  • 打赏
  • 举报
回复
以上为未指定的多行插入,id列为标识列
CopperBell 2009-12-18
  • 打赏
  • 举报
回复
Insert into B (Pid,name)
   Select Pid,name
   From A
   Where Pid=@id
wuyq11 2009-12-18
  • 打赏
  • 举报
回复
;with t as
(
select *,id name from tb where parentid=0
union all
select tb.*,t.name from tb,t where tb.parentid=t.id
)
http://topic.csdn.net/u/20070727/18/91ED52D2-E6F4-4179-8367-DBD7B95237A9.html
jaguar_yang 2009-12-18
  • 打赏
  • 举报
回复
除了存储过程递归外,我觉得用程序递归实现也不错哦。
bancxc 2009-12-18
  • 打赏
  • 举报
回复
2005 用cte递归
cailee 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 moonfeel 的回复:]
数据库表A和B,都为无限递归结构(id,Pid,name),现在任意选中A表的一条记录,如何将该记录及其所有子记录全部插到B表中?
[/Quote]
玩递归啊。
05貌似好一点,2000的递归很麻烦。
楼下高手出现。
it5454 2009-12-18
  • 打赏
  • 举报
回复
帮忙顶

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧