CREATE PROCEDURE [dbo].[Pro_Copy]
@OLDJiFenSeriesId VARCHAR(),
@NEWJiFenSeriesId VARCHAR()
AS BEGIN
DECLARE @TAB TABLE(
[F_Id] [varchar]() NOT NULL,
[F_ParentId] [varchar]() NULL,
[JiFenSeriesId] [varchar]() NULL,
[F_EnCode] [varchar]() NULL,
[PerformanceConfigurationName] [varchar]() NULL,
[PerformanceConfigurationMin] [decimal](, ) NULL,
[PerformanceConfigurationMax] [decimal](, ) NULL,
[F_IsTree] [bit] NULL,
[F_Layers] [int] NULL,
[F_SortCode] [int] NULL,
[F_DeleteMark] [bit] NULL,
[F_EnabledMark] [bit] NULL,
[F_Description] [varchar]() NULL,
[F_CreatorTime] [datetime] NULL,
[F_CreatorUserId] [varchar]() NULL,
[F_LastModifyTime] [datetime] NULL,
[F_LastModifyUserId] [varchar]() NULL,
[F_DeleteTime] [datetime] NULL,
[F_DeleteUserId] [varchar]() NULL
)
INSERT INTO @TAB SELECT * FROM JiFenPerformanceConfiguration WHERE [JiFenSeriesId]=@OLDJiFenSeriesId UPDATE @TAB SET F_Id= NEWID() DECLARE MyCursor CURSOR
FOR SELECT F_ParentId FROM JiFenPerformanceConfiguration WHERE [JiFenSeriesId]=@OLDJiFenSeriesId OPEN MyCursor DECLARE @F_ParentId VARCHAR()
FETCH NEXT FROM MyCursor INTO @F_ParentId
WHILE @@FETCH_STATUS =
BEGIN
--获取原始表的Name 找到他的上一级
DECLARE @ID NVARCHAR(),
@NAME NVARCHAR()
SET @ID =(SELECT F_Id FROM JiFenPerformanceConfiguration WHERE [JiFenSeriesId]=@OLDJiFenSeriesId and F_Id=@F_ParentId)
SET @NAME =(SELECT PerformanceConfigurationName FROM JiFenPerformanceConfiguration WHERE [JiFenSeriesId]=@OLDJiFenSeriesId and F_Id=@F_ParentId)
IF(@ID<>'')
BEGIN
Update @TAB SET F_ParentId =(SELECT F_Id FROM @TAB WHERE PerformanceConfigurationName=@NAME) WHERE F_ParentId=@ID
END
FETCH NEXT FROM MyCursor INTO @F_ParentId
END
CLOSE MyCursor
DEALLOCATE MyCursor
UPDATE @TAB SET JiFenSeriesId=@NEWJiFenSeriesId INSERT INTO JiFenPerformanceConfiguration SELECT * FROM @TAB END

SQLSERVER 复制同一张表的递归结构的更多相关文章

  1. 使用sql语句复制一张表

    如何使用sql语句复制一张表? 方法一:第一步:先建一张新表,新表的结构与老表相等. create table newbiao like chengjibiao(老表名); 第二步:将老表中的值复制到 ...

  2. 如何用sql语句复制一张表

    如何用sql语句复制一张表 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete ...

  3. Insert select 带选择复制一张表到另一张表

    使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,fi ...

  4. oracle 快速复制一张表,并在此创建索引,日志及并行度

    复制表结构及其数据 create table table_name_new as select * from table_name_old 只复制表结构 create table table_name ...

  5. 使用sql语句备份一张表

    如何使用sql语句复制一张表? 方法一:第一步:先建一张新表,新表的结构与老表相等. create table newtable like oldtable; 第二步:将老表中的值复制到新标中. in ...

  6. SqlServer将表中数据复制到另一张表

    insert into phone2(ph,attr,type,carrier) select top 1000 ph,attr,type,carrier from phone 将表phone的字段和 ...

  7. SQLSERVER中如何快速比较两张表的不一样

    SQLSERVER中如何快速比较两张表的不一样 不知不觉要写2014年的最后一篇博文了~ 一般来说,如何检测两张表的内容是否一致,体现在复制的时候发布端和订阅端的两端的数据上面 我这里罗列了一些如何从 ...

  8. 【SqlServer】【问题收集】删除同一张表中完全相同的记录

    1   概述 在Sqlserver中,当通过SqlServer设计器删除同一张表中两条完全相同的记录时,会弹出如下提示: 点击“是” 弹出如下提示,不让删除 2   问题解决 这个问题很简单,用DEL ...

  9. [MySQL] 同步一张表、复制过滤设置

    一.缘由 据测试要求,需要把线上一张股票信息的表实时同步到测试环境,那么干吧,这次不复制库,单独复制表. 二.解决办法 可以按照同步(复制)库的方法来,在salve端设置 my.cnf,replica ...

随机推荐

  1. Elasticsearch学习之入门2

    关于Elasticsearch的几个概念: 1)在Elasticsearch中,文档归属于类型type,而类型归属于索引index,为了方便理解,可以把它们与传统关系型数据库做类比: Relation ...

  2. 宁波uber优歩司机注册教程 UBER宁波司机注册指南!

      自2012年Uber开始向全球进军以来,目前已进入全球56个国家和地区的市场,在全球超过270个城市提供服务, 而Uber公司的估值已高达412亿美元. [目前开通Uber优步叫车服务的中国城市] ...

  3. HDU4010 (动态树)

    Problem Query on The Trees 题目大意 给一棵树,有点权,要求维护4种操作. 操作1:加一条边. 操作2:删一条边. 操作3:将一条路径上的点权增加w. 操作4:询问一条路径上 ...

  4. 自学C++第一天

    常引用: 可以用在复制构造函数里面.

  5. Html.RenderPartial与Html.RenderAction

    Html.RenderPartial与Html.RenderAction的区别     Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的 ...

  6. VB 中Sub和Function的区别

    Sub可以理解为执行一个过车,一个操作. Function在执行完过后,还要返回一个结果. Sub:过程:Function:函数,可以带返回值. 语法: Sub SubName(参数1,参数2,... ...

  7. day27_反射

    1.反射-概述(掌握) 反射就是在程序运行过程中,通过.class文件动态的获取类的信息(属性,构造,方法),并调用 注意:JAVA不是动态语言,因为动态语言强调在程序运行过程中不仅能获取并调用类里面 ...

  8. 1-Spark高级数据分析-第一章 大数据分析

    1.1 数据科学面临的挑战 第一,成功的分析中绝大部分工作是数据预处理. 第二,迭代与数据科学紧密相关.建模和分析经常需要对一个数据集进行多次遍历.这其中一方面是由机器学习算法和统计过程本身造成的. ...

  9. Spring mvc shiro 整合

    参考 : http://www.360doc.com/content/14/0722/10/18637323_396209195.shtml http://www.360doc.com/content ...

  10. akka实现的actor

    定义一个 Actor 类 要定义自己的Actor类,需要继承 Actor 并实现receive 方法. receive 方法需要定义一系列 case 语句(类型为 PartialFunction[An ...