【发布时间】:2013-02-23 15:11:58
【问题描述】:
两个客户将合并。他们都在使用我的应用程序,以及他们自己的数据库。大约几周后,他们正在合并(他们成为一个组织)。所以他们希望将所有数据都放在一个数据库中。
所以这两个数据库结构是相同的。问题出在数据上。例如,我有桌子位置和人员(这只是两张 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。
【问题讨论】:
-
您可以有另一个字段,即“实际”ID。但是,这可能会产生它自己的一系列问题。另外,写一个大查询是要走的路吗?您可能只需要编写一个存储过程来执行此操作
-
也可以为eacht表写1个sp。然后你会有更多的结构。问题是没有查询或存储过程,两者都可以。
标签: sql sql-server sql-server-2005 stored-procedures