首页 > 解决方案 > 在层次结构表中复制一行及其下方的所有行

问题描述

我不知道我的请求是否有名称,但我认为它可以称为“在层次结构表中复制一行及其下方的所有行”。

我想创建一个可以复制记录及其所有子孙记录的存储过程。

当我说“重复”时,我主要将列中的所有记录值复制到同一张表上的新记录(副本应该没有主键 ID 列,因为它是自动的)这个存储过程需要获取两个参数:

  1. 参数 1 - 表名
  2. 参数 2 - 需要复制的主键 ID(该表名称)的值。

代码说明:

  1. 该值(参数 2)将在表(参数 1)上找到一条记录并将其复制(正如我所说的,除该表的主键之外的所有列的值相同。
  2. 然后我们需要知道与这个主键(父表的)有关系的所有表名
  3. 然后每个子表将复制具有相同 Id 值(参数 2)的记录与新的 Id 值(新的父记录)。

几件事:在梦想的场景中,代码知道没有任何限制(孩子,孙子,曾孙......),但我想这是一个非常复杂的代码,将包含一些递归代码,所以即使是代码包含多达 3-4 个级别,我会很高兴地接受。

标签: sqlsql-servertsql

解决方案


推荐阅读