例如,我有2个表Employee和Department。 使用
之类的查询row_length * M
我已经执行了2个EXECUTE SQL任务。
,并希望将这些select语句插入某些Destination表中。 输出:
Select EmpID,Employee From dbo.Employee
Select DepID,DeptName From dbo.Department
我的结构如下所示:
答案 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查询编写为要插入到目标表中的源。
连接OLE DB源和OLE DB目标,然后从“表或视图的名称:”下拉菜单中选择目标表。
具有相同名称的列应自动映射在一起,但是您可能需要手动映射互不相同的列。
您应该能够解决自己产生的任何其他错误。祝你好运!
TL; DR:您正在尝试在SSIS的“控制流”级别上实现某些工作,而这实际上应该在“数据流”级别上完成。