10

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

4

1 回答 1

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 及更高版本也有一个MERGE允许 UPSERT 的语句。这在 SSIS 中本机不支持,但有第三方UPSERT组件,包括 CodePlex.com 上的免费组件

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

于 2012-11-07T17:16:40.977 回答