SQLSERVER 复制同一张表的递归结构
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 复制同一张表的递归结构的更多相关文章
- 使用sql语句复制一张表
如何使用sql语句复制一张表? 方法一:第一步:先建一张新表,新表的结构与老表相等. create table newbiao like chengjibiao(老表名); 第二步:将老表中的值复制到 ...
- 如何用sql语句复制一张表
如何用sql语句复制一张表 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete ...
- Insert select 带选择复制一张表到另一张表
使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,fi ...
- oracle 快速复制一张表,并在此创建索引,日志及并行度
复制表结构及其数据 create table table_name_new as select * from table_name_old 只复制表结构 create table table_name ...
- 使用sql语句备份一张表
如何使用sql语句复制一张表? 方法一:第一步:先建一张新表,新表的结构与老表相等. create table newtable like oldtable; 第二步:将老表中的值复制到新标中. in ...
- SqlServer将表中数据复制到另一张表
insert into phone2(ph,attr,type,carrier) select top 1000 ph,attr,type,carrier from phone 将表phone的字段和 ...
- SQLSERVER中如何快速比较两张表的不一样
SQLSERVER中如何快速比较两张表的不一样 不知不觉要写2014年的最后一篇博文了~ 一般来说,如何检测两张表的内容是否一致,体现在复制的时候发布端和订阅端的两端的数据上面 我这里罗列了一些如何从 ...
- 【SqlServer】【问题收集】删除同一张表中完全相同的记录
1 概述 在Sqlserver中,当通过SqlServer设计器删除同一张表中两条完全相同的记录时,会弹出如下提示: 点击“是” 弹出如下提示,不让删除 2 问题解决 这个问题很简单,用DEL ...
- [MySQL] 同步一张表、复制过滤设置
一.缘由 据测试要求,需要把线上一张股票信息的表实时同步到测试环境,那么干吧,这次不复制库,单独复制表. 二.解决办法 可以按照同步(复制)库的方法来,在salve端设置 my.cnf,replica ...
随机推荐
- OKHttp
以前学习android知识时 不怎么总结 以后学到的知识尽量多反思 相信"学而不思则惘.思而不学则怠"这句话 希望未来的日子 快乐的生活 快乐的编码!第一遍博文总结一下OKHtt ...
- C++复数类对除法运算符 / 的重载
C8-1 复数加减乘除 (100.0/100.0 points) 题目描述 求两个复数的加减乘除. 输入描述 第一行两个double类型数,表示第一个复数的实部虚部 第二行两个double类型数,表示 ...
- [驱动开发] struct _LDR_DATA_TABLE_ENTRY
@Windows XP Professional Service Pack 3 (x86) (5.1, Build 2600) lkd> dt -b _LDR_DATA_TABLE_ENTRY ...
- Where与Having的区别
地球人都知道,Where关键字的作用是过滤,选取符合条件的记录,而Having关键字的作用则是,为聚合结果指定条件.但是,在某些条件下,使用这两者可以得到一样的结果. 比如以下的例子: ) FROM ...
- Maven 学习-入门
在进行Java开发的过程中,我接触到了Maven这套构建工具.所以,花费了点时间学习了一下这套构建工具,在学习过程中学习到的有关Maven的知识,在这里分享给大家. 什么是Maven 首先,在介绍Ma ...
- java 静态代理-积木系列
代理模式的定义:Provide a surrogate or placeholder for another object to controlaccess to it(为其他对象提供一种代理以控制对 ...
- ulua 路径小记 以及 lua require 机制整理
ulua 路径小记 在学习ulua时,require模块的根路径可以为项目的Lua文件夹或者ToLua文件夹(Editor下),但是在package.path和package.cpath中并没有看到当 ...
- Dedecms自定义表单后台列表展现方式更改
Dedecms有自定义表单功能,方便我们收集用户信息.个人通常喜欢拿这个功能做问卷调查,在线留言等功能.但是如果使用过这个功能的朋友就会知道,Dedecms自定义表单后台列表展现方式并不好看. 上面就 ...
- SQL组合查询的存储过程写法
最进一个项目 里面有个查询的功能,它是进行组合查询的, 而且用的是存储过程写.写这样的存储过程,需要注意单引号的使用,请看本人下面的例子,假如你以后写的话 记得注意写就行: create proc s ...
- SQL_函数
五毛叶 — SQL_函数: 如下: 1 SQL_Aggregate函数 AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个 ...