如何将两个表(Patient和ContactDetails)中的行从DB1传输到DB2? 两个DB都已经有这两个数据表。我只想将这两个表中的数据从db1添加到db2。
我尝试了that
但它没有用,因为有些行具有相同的键并且禁止覆盖。
还有其他办法吗?或者我错过了什么?
患者和contactdetails的关系是
patient inner join contactdetails
(foreign_key)patient.contactdetailsid = (primary_key)contactdetails.id
答案 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
请注意我的建议只是一个疯狂的猜测:您没有提供有关结构,键,约束的信息,没有关于哪个键阻止复制哪个错误消息,您已经丢弃的解决方案,数据量的详细信息必须处理......