zoukankan      html  css  js  c++  java
  • SQLSERVER 复制同一张表的递归结构

     1 CREATE PROCEDURE [dbo].[Pro_Copy]
     2     @OLDJiFenSeriesId VARCHAR(100),
     3     @NEWJiFenSeriesId VARCHAR(100)
     4 AS
     5 
     6 BEGIN
     7     DECLARE @TAB TABLE(
     8         [F_Id] [varchar](50) NOT NULL,
     9         [F_ParentId] [varchar](50) NULL,
    10         [JiFenSeriesId] [varchar](50) NULL,
    11         [F_EnCode] [varchar](50) NULL,
    12         [PerformanceConfigurationName] [varchar](50) NULL,
    13         [PerformanceConfigurationMin] [decimal](18, 2) NULL,
    14         [PerformanceConfigurationMax] [decimal](18, 2) NULL,
    15         [F_IsTree] [bit] NULL,
    16         [F_Layers] [int] NULL,
    17         [F_SortCode] [int] NULL,
    18         [F_DeleteMark] [bit] NULL,
    19         [F_EnabledMark] [bit] NULL,
    20         [F_Description] [varchar](500) NULL,
    21         [F_CreatorTime] [datetime] NULL,
    22         [F_CreatorUserId] [varchar](50) NULL,
    23         [F_LastModifyTime] [datetime] NULL,
    24         [F_LastModifyUserId] [varchar](50) NULL,
    25         [F_DeleteTime] [datetime] NULL,
    26         [F_DeleteUserId] [varchar](50) NULL
    27     )
    28     INSERT INTO @TAB SELECT * FROM JiFenPerformanceConfiguration WHERE [JiFenSeriesId]=@OLDJiFenSeriesId
    29 
    30     UPDATE @TAB SET F_Id= NEWID() 
    31 
    32     DECLARE MyCursor CURSOR    
    33     FOR SELECT F_ParentId FROM JiFenPerformanceConfiguration WHERE  [JiFenSeriesId]=@OLDJiFenSeriesId
    34    
    35     OPEN MyCursor
    36 
    37     DECLARE @F_ParentId VARCHAR(50)
    38         FETCH NEXT FROM  MyCursor INTO @F_ParentId
    39         WHILE @@FETCH_STATUS =0
    40             BEGIN
    41                 --获取原始表的Name 找到他的上一级
    42                 DECLARE @ID NVARCHAR(50),
    43                 @NAME NVARCHAR(100)
    44                 SET @ID =(SELECT F_Id FROM JiFenPerformanceConfiguration  WHERE [JiFenSeriesId]=@OLDJiFenSeriesId and F_Id=@F_ParentId)
    45                 SET @NAME =(SELECT PerformanceConfigurationName FROM JiFenPerformanceConfiguration  WHERE [JiFenSeriesId]=@OLDJiFenSeriesId and F_Id=@F_ParentId)
    46                 IF(@ID<>'')
    47                     BEGIN
    48                          Update @TAB SET F_ParentId =(SELECT F_Id FROM @TAB WHERE PerformanceConfigurationName=@NAME) WHERE F_ParentId=@ID
    49                     END
    50                 FETCH NEXT FROM  MyCursor INTO @F_ParentId
    51             END
    52         CLOSE MyCursor
    53         DEALLOCATE MyCursor
    54     UPDATE @TAB SET JiFenSeriesId=@NEWJiFenSeriesId
    55 
    56     INSERT INTO JiFenPerformanceConfiguration SELECT * FROM  @TAB
    57 
    58 END
  • 相关阅读:
    Servlet访问第一次500,刷新后404的解决办法
    关于eclipse保存代码很慢,提示the user operation is waiting的问题
    编译时,运行时解释
    JDK、JRE、JVM
    IDEA使用maven中tomcat插件启动项目乱码问题
    treeGrid树形数据表格的json数据格式说明
    Maven最佳实践:Maven仓库(转)
    intelliJ idea debug模式下启动慢的原因
    基于 Annotation 拦截的 Spring AOP 权限验证方法
    化繁为简 如何向老婆解释MapReduce?(转载)
  • 原文地址:https://www.cnblogs.com/yuming1983/p/6212481.html
Copyright © 2011-2022 走看看