继承情况。我在这里有两个关于模式的表:
ID | COMPANY_NAME | DESC | CONTACT
ID | COMPANY_ID | X_COORDINATE | Y_COORDINATE
第一个表格包含公司列表和所述公司的第二个联系人坐标。
问题是我想将此表中的数据与另一组已有数据的表中的数据合并。其他表具有相似的结构,但已经预先填充了数据。 ID是自动增量的。
如果我们允许表示在表1中标记为1-1000的公司和表2中标记为1-500的公司,我们需要将其合并,使得表2中的ID号1在迁移到另一个表时变为ID 1001。并排我们也希望迁移坐标表中的条目,使它们映射到表的新ID。这可以在SQL中完成,还是我需要在这里使用脚本进行这种工作。
答案 0 :(得分:2)
我不确定我知道有多少桌子,谁是桌子1,2,但问题非常清楚。我认为简单的方法是:
在开始此过程之前备份所有数据库
在目标表中添加一个包含原始ID的列。
将要合并的所有记录(源)插入到目标表中,将原始ID放入您添加的列中。
现在您可以使用旧ID
更新地理X,Y数据完成所有操作后,您可以删除原始ID列。
编辑:在回复你的评论时,我会在这里添加代码,因为它更具可读性。
改编自SQL Books Online:从另一个表中插入行
INSERT INTO MyNewTable (TheOriginalID, Desc)
SELECT ID, Desc
FROM OldTable;
然后,您可以根据旧表中的值更新新表:
UPDATE MyNewTable SET X = oldTable.X , Y = oldTable.Y where
FROM MYNewTable inner JOIN OldTable ON MYNewTable.TheOriginalID = OldTable.ID