如何将DTS包迁移到SSIS 2012?

use*_*751 10 ssis dts

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

Pet*_*ter 10

你不能直接迁移包DTS写在SQL Server 2000中,以SSISSQL Server 2012中.您可以进行从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方面没有区别,例如INSERT,UPDATEDELETE,但SQL 2008以后也有一个MERGE允许UPSERT 的语句.SSIS本身不支持此功能,但有第三方UPSERT组件,包括CodePlex.com上的免费组件

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