将数据从一个DB迁移到另一个DB

时间:2015-12-01 18:19:48

标签: sql-server database-migration

我的两个数据库都在同一台服务器上,DB1包含新旧数据,DB2包含旧数据。DB1包含不同的表和列,然后包含DB2中的数据。 1}}。我担心的是覆盖旧数据和创建重复数据。两者都有不同的主/外键和关系 我有一个查询,

update t1
set description = t2.description
from db1.dbo.foo t1
  join db2.dbo.foo t2
  on t1.itemid = t2.itemid

我想要做的是检查记录是否已经存在,以及所有值是否匹配以不创建重复。如果某些值不匹配,请使用最新的记录更新记录。我可以使用唯一的ID吗?

由于

1 个答案:

答案 0 :(得分:0)

以下是您可以使用存在关键字的方法。

IF NOT EXISTS (SELECT DB1.<column_where_data_is_being_checked> 
           FROM DB1.dbo.table_name DB1 INNER JOIN DB2.dbo.table_Name 
           DB2 ON DB1.<unique_ID> = DB2.<unique_ID> 
           WHERE DB2.<column_where_data_is_being_checked> =
                 SELECT DB1.<column_where_data_is_being_checked>
                 FROM DB1.dbo.table_name DB1)
UPDATE...

这可能会起作用,您可能需要修改exists语句中的查询并构建一个不同的临时表,您可以在更新后删除它。如果该值不存在,它将继续通过列表。本网站提供了有关此概念的更多信息https://msdn.microsoft.com/en-us/library/ms188336.aspx