将SQL进程转换为SSIS包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SQL进程转换为SSIS包相关的知识,希望对你有一定的参考价值。
我有一个SQL查询具有超过200行代码,具有以下步骤。我需要每天运行它并生成表A.我有一个新的要求,即使用相同的进程创建一个SSIS包并使用ssis创建tableA。以下详细信息是当前的SQL进程
- drop table_A
- select into table_A from(select tableB union all select tableC union all tableD)key fators:table_B,table_C,table_D - 我需要从这三个表中的40列中拉出20列。列名称各不相同,我需要重命名和标准列名称和某些数据类型,以便它作为Table_A中的唯一列。
这已经在sql查询中设置了,但我需要知道什么是最佳实践以及如何将它们转换为SSIS?我应该使用“执行SQL任务”流程还是使用涉及oledb源和oledb目标的数据流任务?
答案
执行SQL任务就是你想要的。执行SQL任务旨在运行可能会或可能不会返回结果集的任意查询。您已经完成了使代码正常工作的艰苦工作,因此您需要做的就是定义一个连接管理器(可能是一个OLE DB)并粘贴您的代码。
在这种情况下,SSIS将只是现有SQL进程的协调器/执行框架。作为一个写了超过几个SSIS包的人,这是完全可以接受的。
我发现,当您需要将表B,C和D中的数据移动到远程数据库中或者需要对它们执行转换逻辑(在TSQL中不容易完成)时,数据流任务更合适。
数据流任务不支持在运行时创建表。所有SSIS任务都执行验证检查 - 在程序包启动时或者可以延迟到特定任务开始。数据流任务要执行的检查之一是“目标表是否存在(并且结构是否与我的缓存副本匹配)?”
以上是关于将SQL进程转换为SSIS包的主要内容,如果未能解决你的问题,请参考以下文章