2014-10-27 25 views
0

我有數據庫具有以下3個表:SSIS - 找到元素表,使用它的關鍵,並插入到另一個表

enter image description here

  • Customers.CustomerId是整數,PK
  • Addresses.AddressId是整數並且PK
  • CustomerAddresses.Customer_CustomerId是整數並且FK到客戶
  • CustomerAddresses.Address_AddressId是整數並且FK到地址
  • Customers.EntityId是GUID
  • Addresses.EntityId是GUID

我使用SQL Server集成服務。

我也有一對addressEntityID和customerEntityId的XML文件。這些是EntityIDs(GUID),需要映射到ID(整數)並插入到CustomerAddresses中。

如何映射此關係並導入到CustomerAddresses?

我想要做的事情,爲每一行,select CustomerId from Customers where EntityId = {0},然後使用此值插入。這可以做到嗎?

並且在你建議之前,我應該使用EntityId作爲PK,原因是那些沒有提供給數據庫中的所有數據。只有導入的數據來自另一個系統,那些有EntityId的數據。

+0

快速和骯髒。你可以使用查找轉換來做到這一點?你嘗試過嗎? – rvphx 2014-10-27 16:57:20

+0

數據的驅動程序是XML文件。根據這裏的兩個值,你需要找到相應的實體(客戶或地址),然後在CustomerAddresses表中記錄該關係,是嗎? – billinkc 2014-10-27 17:53:12

+0

@billinkc,是的,這正是我需要的。 – Tschareck 2014-10-28 09:42:34

回答

1
  1. 在數據流丟棄XML源
  2. 添加派生列,從XML圖值(有必要從字符串GUID映射)
  3. 添加查閱,連接到地址表中,衍生自AddressGuid CREATE JOIN到EntityId。輸出AddressId。

Lookup configuration

  • 從查找添加另一個查找和做同樣爲客戶表
  • 添加DB目的地,地圖值AddressId和客戶ID
  • +0

    這看起來是正確的。您在查找下面的步驟中是否需要EntityID?如果是這樣,請繼續並檢查「EntityID」複選框。但解決方案看起來很棒! – rvphx 2014-10-28 16:15:26

    相關問題