我想知道是否可以通过SSIS完成以下方案。
我想根据2个数据源中的值向SQL Server插入记录:1是CSV文件,1是SQL Server。例如,2个数据源,一个具有名为Customer ID的列,另一个来自SQL Server,其中包含名为Task ID和Task Name的列。我想使用名为Customer Task ID,Customer ID,Task ID和Task Name的列向SQL Server插入记录。
通过从源1(CSV文件)捕获客户ID(例如C5000),然后从源2(SQL Server)中的任务ID和任务名称列合并,然后插入合并的记录,我已经尝试了几种方式而没有任何运气到目标(SQL Server),然后重复执行相同的任务以插入记录,直到最后一个客户记录。我总结了下面的源和目标样本。任何反馈将不胜感激!
来源1(CSV文件) -
第1行包含客户ID列:C5000
第2行包含客户ID列:C5001
源2(SQL Server上名为Task的表) -
第1行包含任务ID列:T2000和任务名称列:计划
第2行包含任务ID列:T2001和任务名称列:查看
目标(SQL Server上名为Customer Task的表) -
第1行包含客户任务ID列:CT0001,客户ID列:C5000,任务ID列:T2000,任务名称列:计划
第2行包含Customer Task ID列:CT0002,Customer ID列:C5000,Task ID列:T2001,Task Name列:Review
第3行包含Customer Task ID列:CT0003,Customer ID列:C5001,Task ID列:T2000,Task Name列:Planning
第4行包含Customer Task ID列:CT0004,Customer ID列:C5001,Task ID列:T2001,Task Name列:Review
答案 0 :(得分:0)
使用Cross Join
执行此操作
INSERT INTO Customer_Task
(Customer_Task_ID,
Customer_ID,
Task_ID,
Task_name)
SELECT 'CT' + RIGHT('000')
+ CONVERT(VARCHAR(10), Row_number() OVER(ORDER BY (SELECT NULL))),
Customer_ID,
Task_ID,
Task_name
FROM Customer
CROSS JOIN Task