1

我在不同的服务器上有两个数据库。两个数据库具有相同的架构。我们需要将数据从一个数据库移动到另一个数据库,如果记录只存在于目标上,则应该将其删除。我在 SSIS 中有以下场景要解决。

成分表根据食谱保存成分,每个食谱都属于一个“包。

Package --> Recipe --> Ingredient 

包装是顶级的,然后是配方,然后是成分。我们逐包移动数据。SSIS 包已经到位,它采用 PackageId 并将所有食谱和成分移动到目标数据库。Target 数据库中没有 Package 表,因为我们使用它来打包数据以进行数据移动。现在的场景是,

  1. 我们正在移动 PackageId = 1 的 Package
  2. 假设包 1 有两个食谱,并且这些食谱已经存在于源和目标中,但是目标上的食谱有更多的成分,例如源包 1 有 RecipeA 和 RecipeB。这两个食谱已经存在于 Destination 中。但目的地食谱 B 有更多的成分。我需要删除那些额外的成分。

我不能使用执行 SQL 任务,因为源数据库和目标数据库位于不同的服务器上。谁能建议如何在数据流中做到这一点?

想到以下设计。

  1. 查找 SOURce 上包 XYZ 中存在的所有 RecipeId。
  2. 将其与相同的食谱进行比较,找出仅在目的地存在的成分。

    源数据库

    成分表

    ID 名称 RecipeId

    配方表

    RecipeId 名称 PackageId

    包表 PackageId 名称

    *目标数据库* *

    成分表 ID 名称 RecipeId

    配方表 RecipeId 名称 BundleId

4

1 回答 1

0

您可以做的是在目标服务器中创建一个暂存基础,您将在其中复制信息而不查找参考,之后您可以直接在同一服务器中进行比较。

我希望它有所帮助。

于 2013-04-26T14:43:21.297 回答