首页 > 数据库技术 > 详细

SQL语句复制父子级表数据

时间:2017-03-02 12:51:17      阅读:385      评论:0      收藏:0      [点我收藏+]

原始表Book数据如下: id为自增长整数,text为内容,pid为上级ID
id text pid
1 第一层 0
2 数学 0
3 第二层 1
4 语文 1
5 第三层 3
6 英语 3
……………………

现要求拷贝一份这样的数据到同一个表Book中,成功后的数据应该如下
id text pid
100 第一层 0
101 数学 0
102 第二层 100
103 语文 100
104 第三层 102
105 英语 102

……………………

 

--第一步:复制全部数据
Insert Into Book(text,pid) Select a.text,a.pid From Book a where 条件

--第二步:创建变量表
declare @t table(idx int,id int,pid int,id2 int,pid2 int)
Insert Into @t
select ROW_NUMBER() OVER (ORDER BY a.pid) AS idx,a.id,a.pid,b.id id2,b.pid pid2
from Book a inner join Book b on b.text=a.text and b.pid=a.pid where 条件

--第三步:修改新数据的pid
update Book set pid=c.id2
from @t a
inner join @t b on b.pid=a.id
inner join @t c on c.idx=a.idx

 

SQL语句复制父子级表数据

原文:http://www.cnblogs.com/kandyvip/p/6489805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!