需要SQL将条目从一个表转移到另一个表

时间:2011-04-03 07:20:28

标签: sql database

继承情况。我在这里有两个关于模式的表:

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中完成,还是我需要在这里使用脚本进行这种工作。

1 个答案:

答案 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