将具有类似表结构的数据库合并到一个数据库中

时间:2015-08-20 21:40:49

标签: sql sql-server merge

我有两个具有相似数据结构的数据库。它们基本上是具有相同表格的归档数据库,但其中一个具有略微更新的数我想将它们合并到一个数据库中。

当我尝试合并它们时,我都面临错误,指出无法复制重复数据。但我也想复制重复的数据。我认为这个错误主要是由于主键约束。

有人可以建议我如何在不丢失重复数据的情况下联合两个数据库吗?

例如:

表1:

MemberID Name   Class   Year
120      Sam    B       2005
121      Mark   A       2005
122      John   A       2005

表2:

MemberID Name  Class    Year
120      Sam    B       2006
121      Mark   A       2006
123      David  C       2006

结果表应为:

MemberID Name   Class   Year
120      Sam    B       2005
120      Sam    B       2006
121      Mark   A       2005
121      Mark   A       2006
122      John   A       2005
123      David  C       2006

注意:memberID是主键

1 个答案:

答案 0 :(得分:0)

主键必须是唯一的。因此,您需要更改结果表的设计,以便它具有一些其他主键,例如名为" ID"这是一个身份字段(自动编号)。

当MemberID不再是主要内容时,您的插入应该有效。

您还可以在结果表中添加另一个字段,指示它是否已存档,然后将主键设置为MemberID和存档数据的组合。有很多方法可以做到这一点,但不知何故,MemberID不能成为结果表中的主要内容。