【发布时间】:2014-09-15 22:40:26
【问题描述】:
我有以下 3 个相关的表
Schools Departments Classes
--------------- ------------------ -----------------
ID ID ID
School_Name ID_Schools ID_Departments
Department_Name Class_Name
以及关于它们包含的内容的一些示例(我会尽可能地画出最好的)
---- Schools ---
ID School_Name
----------------
1 School_1 <----------------------\
2 School_2 |
n ........ |
|
---- Departments ---------------- |
ID ID_Schools Department_Name |
--------------------------------- |
1 1 Dept_1 <-----------/ -->--\
2 1 Dept_2 <-----------/ -->--|------\
3 2 Dept_1 | |
n .. ...... | |
| |
---- Classes ------------------- | |
ID ID_Departments Class_Name | |
-------------------------------- | |
1 1 Class_1 <-------------/ |
2 1 Class_2 <-------------/ |
3 1 Class_3 <-------------/ |
4 2 Class_1 <--------------------/
n .. .......
所有 ID 都是自动递增的
我正在寻找一种复制“School_1”层次结构的方法。问题是我如何维护新行之间的关系?
例如,要复制“School_1”层次结构,我将在 Schools 表中插入一个新的原始数据,最终将生成一个新 ID(例如 5)。
---- Schools ---
ID School_Name
----------------
5 School_1
属于“School_1”的部门“Dept_1”和“Dept_2”将获得新 ID
---- Departments ----------------
ID ID_Schools Department_Name
---------------------------------
16 5 Dept_1
17 5 Dept_2
类也将获得新的 ID
---- Classes -------------------
ID ID_Departments Class_Name
--------------------------------
56 16 Class_1
57 16 Class_2
58 16 Class_3
59 17 Class_1
我怎样才能以一种简单而聪明的方式实现这一点?
【问题讨论】:
-
现在无法回答这个问题,但投票赞成问题的完美形式。我希望所有 SO 问题都像这个问题一样清晰易懂!
标签: sql sql-server sql-server-2012