将SQL进程转换为SSIS包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SQL进程转换为SSIS包相关的知识,希望对你有一定的参考价值。

我有一个SQL查询具有超过200行代码,具有以下步骤。我需要每天运行它并生成表A.我有一个新的要求,即使用相同的进程创建一个SSIS包并使用ssis创建tableA。以下详细信息是当前的SQL进程

  1. drop table_A
  2. 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包的主要内容,如果未能解决你的问题,请参考以下文章

将 SSIS 包转换为 .NET 应用程序?

如何将 Open *** 进程置于 SSIS 任务控制流中

SSIS和NULL值

SSIS包写入CRM 2011数据类型错误

SSIS 将所有 Paradox 表导入 SQL Server 2012

灵活运用SQL Server2008 SSIS变量