小编Tah*_*ooy的帖子

如何复制自引用表的行

假设我们有一个像这样的自引用表

CREATE TABLE Month
(
  Id int IDENTITY(1,1)  PRIMARY KEY,
  Title char(128)
)
CREATE TABLE Entity
(
 Id int IDENTITY(1,1)  PRIMARY KEY,
 MonthId int FOREIGN KEY REFERENCES Month(Id),
 Name char(128),
 ParentId int FOREIGN KEY REFERENCES Entity(Id),
)
Run Code Online (Sandbox Code Playgroud)

我想将某个MonthId的所有行复制到另一个MonthId.重复的parentId也应该更新,实体及其父母应该在同一个月.

作为一个例子假设我们有

Id        MonthId    Name     ParentId
------------------------------------
1         1          name1     null
2         1          name11    1
3         1          name3     null 
4         1          name31    3
5         1          name311   4
Run Code Online (Sandbox Code Playgroud)

将monthId = 1行复制到monthId = 2后,结果应如下所示:

Id        MonthId    Name     ParentId
------------------------------------
1         1          name1     null
2         1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server hierarchical-data self-reference sql-server-2012

4
推荐指数
1
解决办法
396
查看次数