如何将DTS包迁移到SSIS 2012?

时间:2012-11-07 16:42:05

标签: ssis dts

我需要将在SQL Server 2000中创建的所有DTS包迁移到SSIS 2012. SQL Server 2000和SQL Server 2012之间有什么区别。在插入,更新,删除等SQL语句中是否有任何差异。什么是我应该注意将DTS包升级到SSIS的东西吗?

1 个答案:

答案 0 :(得分:10)

您无法将软件包直接从 SQL Server 2000 中的 DTS 迁移到 SQL Server 2012 中的 SSIS 。您可以进行从DTS到SSIS 2005或2008的中间转换,然后将它们升级到SSIS 2012包,但我不建议这样做,因为转换向导并不精彩,您也将失去SSIS相对于DTS的大多数好处。

因此,我强烈建议在SSIS 2012中重新编写软件包,复制原始DTS软件包的功能。我很欣赏这取决于所涉及的软件包数量,这可能是一个很大的,耗时的任务,但这是最好的方法。

就差异而言,我在下面列出了一些值得注意的:

  • DTS是基于COM的,虽然在封面下SSIS仍然使用许多COM对象,但它包含在.NET中
  • SSIS具有序列容器,以便将对象组合在一起
  • SSIS 2008和2012支持C#以及VB.NET
  • DTS只允许映射列名,但SSIS有一组丰富的数据转换
  • 必须丢弃DTS包中的ActiveX脚本(如果有)
  • 在SSIS中,您需要手动映射Unicode和ASCII
  • SSIS支持64位

SQL Server 2000和SQL Server 2012在基本DML方面没有区别,例如INSERTUPDATEDELETE,但SQL 2008以后也有{{}允许UPSERT的1}}语句。 SSIS本身不支持此功能,但有第三方MERGE组件,包括CodePlex.com上的免费组件

然而,在SSIS数据流转换中,有一些组件,例如UPSERT组件和Slowly Changing Dimension (SCD)组件,允许您更新行。然而,这些转变都表现不佳,通常有更好的方法。