两个客户将合并。他们都在使用我的应用程序,以及他们自己的数据库。大约几周后,他们正在合并(他们成为一个组织)。所以他们希望将所有数据都放在一个数据库中。
所以这两个数据库结构是相同的。问题出在数据上。例如,我有表位置和人员(这些只是两个 50 人的表):
数据库 1:
Locations
:
Id Name Adress etc....
1 Location 1
2 Location 2
Persons
:
Id LocationId Name etc...
1 1 Alex
2 1 Peter
3 2 Lisa
数据库 2:
Locations
:
Id Name Adress etc....
1 Location A
2 Location B
Persons
:
Id LocationId Name etc...
1 1 Mark
2 2 Ashley
3 1 Ben
我们看到那个人与位置有关(列locationId
)。请注意,我有更多表是指位置表和人员表。
数据库包含它们自己的位置和人员,但 ID 可以相同。以防万一,当我想将所有内容导入 DB2 时,应将 DB1 的位置插入到 ID 为 3 和 4 的 DB2 中。来自 DB1 的人员应具有新的 ID 4、5、6 以及人员表中的位置必须更改为 ids 4,5,6。
我对这个问题的解决方案是编写一个处理所有事情的查询,但我不知道从哪里开始。
什么是最好的方法(在查询中)重新编号 Id 字段也对孩子有级联?数据库不包含参照完整性和外键(外键未在数据库中定义)。创建 FKey 和级联不是一种选择。
我正在使用 sql server 2005。