【问题标题】:SSIS read the data from table and insert 2 rows in another tableSSIS 从表中读取数据并在另一个表中插入 2 行
【发布时间】:2020-02-25 09:52:23
【问题描述】:

我需要从一个源表中读取数据行并在另一个表中插入不同的行

我已尝试从表中读取行并使用 SSIS 中的数据流进行插入工作正常

但基于公共 ID 的源行(拆分源并插入目标中的 2 行)

i.e Source System ID 和 Source System Key 在一行中,targetSystemID 和 Target system key 在另一行中,具有相同的 commonID​​,RefID

例子:

源表列和行

RefID      SourceSystemID     SourceKey     TargetSystemID   TargetKey     CommonID   KeyDate
3           1                 9BFG06E8AD      2              001351913001  12345      20-02-2010 
4           1                 8KIJ67ASG9      2              002352014005  45678      20-02-2010 

必需的目标列行

DataID(AutoIncrement)    RefID      SystemID          SystemKey      CommonID    DateCreated(using getdate())
1                        3          1                 9BFG06E8AD     12345       getdate()
2                        3          2                 001351913001   12345       getdate()
3                        4          1                 8KIJ67ASG9     45678       getdate()
4                        4          2                 002352014005   45678       getdate()

有人可以帮忙吗?

【问题讨论】:

  • 我建议使用 LoadTimeStamp 与 DateCreated 的列名,以避免以后出现混淆。此记录在您加载时“未创建”。它已经存在于其他地方。
  • @Dale K :sql server

标签: sql-server ssis


【解决方案1】:

您可以在 SSIS 中使用UNION ALL

在SSIS中有两种使用UNION ALL的方法

1.在 SSIS 中使用 SQL 查询

将此查询用作来源

SELECT Row_Number() over(order by RefId) AS DataID,*
FROM(
     SELECT RefID, SourceSystemID As SystemId, SourceKey, CommonID, GetDate() as CreatedDate
     FROM sample

     Union All

     SELECT RefID, TargetSystemID, TargetKey, CommonID, GetDate() as CreatedDate
     FROM sample
 ) AS T
 Order by RefId,SystemId
 ;

2。使用 SSIS 包对象

Dataflow Task 中创建两个不同的 OLE-DB 源

像这样(虽然,它的来源不同,但不是 Excel 和 CSV,而是放两个 OLE-DB Source)并在源一和二中只选择所需的列。

请参考this link在SSIS中使用Union-All

已编辑:检查此fiddle 以匹配您的答案!

【讨论】:

  • 感谢它的工作,但输出生成为第 1 行、第 2 行、第 3 行和第 4 行,但如何获得我在上面提到的确切输出?
  • @sivaramanvasu:检查我编辑的小提琴链接!让我知道你缺少什么!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 2020-08-21
  • 1970-01-01
相关资源
最近更新 更多