【问题标题】:How to migrate DTS packages to SSIS 2012?如何将 DTS 包迁移到 SSIS 2012?
【发布时间】:2012-11-07 16:42:04
【问题描述】:

我需要将在 SQL Server 2000 中创建的所有 DTS 包迁移到 SSIS 2012。SQL Server 2000 和 SQL Server 2012 有什么区别。SQL 语句如插入、更新、删除等有什么区别。什么是将 DTS 包升级到 SSIS 应该注意什么?

【问题讨论】:

    标签: ssis dts


    【解决方案1】:

    您不能将包直接从 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 的 MERGE 语句。 SSIS 本身不支持此功能,但有第三方 UPSERT 组件,包括 CodePlex.com 上的免费组件

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多