如何将多个select语句插入到SSIS表中

时间:2018-11-08 18:32:50

标签: sql ssis

例如,我有2个表Employee和Department。 使用

之类的查询
row_length * M

我已经执行了2个EXECUTE SQL任务。

,并希望将这些select语句插入某些Destination表中。 输出:

Select EmpID,Employee From dbo.Employee

Select DepID,DeptName From dbo.Department

我的结构如下所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

很难说出您在这里做的事情,但是从SELECT语句和目标表布局来看,在我看来,将两个SELECT语句合并为一个连接到ID的SELECT语句会更简单列似乎在目标表中,所以我假设ID也在源表中。

重要提示:如果[dbo]。[Employee]和[dbo]。[部门]之间没有任何关系(例如ID),则他们不应该 >插入到同一目标表中。您的表不会被规范化,这很糟糕。

理想情况下,您的源查询类似于

SELECT  Emp.EmpID
       ,Emp.Employee
       ,Dept.DeptName
       ,Dept.Department
FROM [dbo].[Employee] Emp 
INNER JOIN [dbo].[Department] Dept
ON Emp.ID=Dept.ID

此处结束SQL并开始SSIS:
您需要在SSIS中创建一个数据流任务。
在数据流任务中,您将需要OLE DB源和OLE DB目标任务。
打开OLE DB Source任务,然后选择“数据访问模式”下拉菜单并将其更改为“ SQL命令”选项。
现在,您可以将SQL查询编写为要插入到目标表中的源。

SQL Query

连接OLE DB源和OLE DB目标,然后从“表或视图的名称:”下拉菜单中选择目标表。
具有相同名称的列应自动映射在一起,但是您可能需要手动映射互不相同的列。

您应该能够解决自己产生的任何其他错误。祝你好运!

TL; DR:您正在尝试在SSIS的“控制流”级别上实现某些工作,而这实际上应该在“数据流”级别上完成。