将数据从一个数据库传输到另一个数据库

时间:2014-09-10 13:29:30

标签: sql-server database data-transfer

如何将两个表(Patient和ContactDetails)中的行从DB1传输到DB2? 两个DB都已经有这两个数据表。我只想将这两个表中的数据从db1添加到db2。

我尝试了that

但它没有用,因为有些行具有相同的键并且禁止覆盖。

还有其他办法吗?或者我错过了什么?

患者和contactdetails的关系是

patient inner join contactdetails
(foreign_key)patient.contactdetailsid = (primary_key)contactdetails.id

1 个答案:

答案 0 :(得分:0)

在源contactdetails表上循环,每次插入一行,在临时表中保存旧的contactdetail id和匹配的新contactdetail id(here是sql循环的一个例子)。登记/> 临时表应该是这样的:

create @temptableforcopy table (
 oldcontactdetailsid [insertheretherightdatatype],
 newcontactdetailsid [insertheretherightdatatype]
)

将患者表中的数据复制到用于上一步骤的临时表中,如下所示:

insert into newdb.newschema.patient (contactdetailsid, field1, field2, ...)
select TT.newcontactdetailsid,
       old.field1,
       old.field2,
       ...
from   olddb.oldschema.patient old
       join @temptableforcopy TT on TT.oldcontactdetailsid = old.contactdetailsid

请注意我的建议只是一个疯狂的猜测:您没有提供有关结构,键,约束的信息,没有关于哪个键阻止复制哪个错误消息,您已经丢弃的解决方案,数据量的详细信息必须处理......