CREATE TABLE TreeShip(
 [ID] uniqueidentifier PRIMARY KEY NOT NULL,
 [Name] [nvarchar](50) NULL,
 [Remark] [nvarchar](500) NULL,
 [ParentID] uniqueidentifier not null
)

GO

INSERT INTO TreeShip(ID,Name,Remark,ParentID) values ('47B9AF56-32D8-4561-8096-15D832C47B26','上海一中','源数据','00000000-0000-0000-0000-000000000000')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values ('64F41586-449A-464B-BB48-FF13FBC492BC','上海二中','源数据','00000000-0000-0000-0000-000000000000')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海三中','源数据','00000000-0000-0000-0000-000000000000')

INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海一中一班','源数据','47B9AF56-32D8-4561-8096-15D832C47B26')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海一中二班','源数据','47B9AF56-32D8-4561-8096-15D832C47B26')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海一中三班','源数据','47B9AF56-32D8-4561-8096-15D832C47B26')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海二中一班','源数据','64F41586-449A-464B-BB48-FF13FBC492BC')
INSERT INTO TreeShip(ID,Name,Remark,ParentID) values (newid(),'上海二中二班','源数据','64F41586-449A-464B-BB48-FF13FBC492BC')

GO

DECLARE @TreeType nvarchar(20)
SET @TreeType = '新数据'
BEGIN
 --创建一个临时表,记录ID的变化
 SELECT ID AS FromID,newid() AS ToID INTO #TEMP FROM TreeShip WHERE Remark ='源数据'
 --插入相应的数据
 INSERT INTO TreeShip(ID,Name,Remark,ParentID)
 SELECT M1.ToID,A.Name,@TreeType,ISNULL(M2.ToID,'00000000-0000-0000-0000-000000000000')
 FROM TreeShip A
 INNER JOIN #TEMP M1 ON A.ID = M1.FromID
 LEFT JOIN #TEMP M2 ON A.ParentID = M2.FromID
 
 DROP TABLE #TEMP 
END

GO

SELECT * FROM TreeShip  ORDER BY REMARK ,PARENTID,NAME

--哥哥们,若是觉得好就给个好评呀,写的很辛苦的。

复制新增树状数据_ParentID也需要更新的更多相关文章

  1. 树状数据删除(TP5)

    应用场景:类似上图中树状菜单,选中一级菜单 点击上方删除按钮 所有子菜单删除 以下是代码截图(代码基于 TP5)

  2. POJ2155 Matrix 【二维树状数组】+【段更新点查询】

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17766   Accepted: 6674 Descripti ...

  3. mysql循环查询树状数据

    完整function )) ) CHARSET utf8 BEGIN ) ; ) ; SET str = ''; SET cid =cast(rootId as CHAR); WHILE cid is ...

  4. JS实现 JSON扁平数据转换树状数据

    后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name: '', level: 0}, {id:2 , parentId: 0, name: '', level: 0}, ...

  5. HDU-1754 I Hate It (树状数组模板题——单点更新,区间查询最大值)

    题目链接 ac代码(注意字符读入前需要注意回车的影响) #include<iostream> #include<cstdio> #include<cstring> ...

  6. HDU-1166 敌兵布阵 (树状数组模板题——单点更新,区间求和)

    题目链接 AC代码: #include<iostream> #include<cstdio> #include<cstring> #include<algor ...

  7. PHP递归实现层级树状展现数据

    树状数据展现很常用,今天学习了PHP的递归,也来总结总结! PHP代码: function _getTreeList_custom1($data,$parent_id,$depth) { $retur ...

  8. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)

    链接:https://ac.nowcoder.com/acm/contest/392/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K ...

  9. POJ1195Mobile phones (从二维树状数组到cdq分治)

    Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows ...

随机推荐

  1. ResultSet.TYPE_SCROLL_SENSITIVE到底发生了什么?

    转自:https://blog.csdn.net/axman/article/details/3984103 这个问题我在几年前说过,但今天再次从CSDN上看到有人问这个问题,可以看出,真正懂这个问题 ...

  2. Navicat工具导出mySQL数据库某个视图结构的.sql脚本

    用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

  3. 接口测试基础——第6篇unittest模块(三)

    今天是unittest最后一讲,我们解决一下如何只运行一次setUp和tearDown方法以及简单的数据驱动的知识. 1.只运行一次setUp和tearDown方法 很简单,只需要把setUp和tea ...

  4. 【angularJS】Service服务

    AngularJS 中的服务是一个函数或对象.可以创建自己的服务,或使用内建服务. 内置服务 AngularJS 内建了30 多个服务. 1.  $location 服务,它可以返回当前页面的 URL ...

  5. LeetCode 973. K Closest Points to Origin

    原题链接在这里:https://leetcode.com/problems/k-closest-points-to-origin/ 题目: We have a list of points on th ...

  6. Tornado的入门研究

    1.为啥要了解Tornado 首先,Tornado是大神写出来的,如果学习python的话,参照Tornado的源码是一件非常好的事情,属于FaceBook的开源代码 其次,Tornado就是我们在 ...

  7. 原生 Javascript 编写五子棋

    原文地址:原生 Javascript 编写五子棋 博客地址:http://www.extlight.com 一.背景 近一个月没写 Javascript 代码,有点生疏.正好浏览网页时弹出五子棋的游戏 ...

  8. k-means算法Java一维实现

    这里的程序稍微有点变形.k_means方法返回K-means聚类的若干中心点.代码: import java.util.ArrayList; import java.util.Collections; ...

  9. AT命令控制上网 PDP

    1. AT+CGATT=1 (Attach or detach from GPRS service, GPRS 附着状态) 说的简单点,这一步就是让SGSN (服务GPRS节点,你可以把它理解成与基站 ...

  10. CArray,CList,CMap如何实例化

    1.定义一个CMap,向这个CMap中增加数据项(键-值对).CMap<CString, LPCTSTR, CString, LPCTSTR>m_ItemMap;CString strKe ...